📄 slang_common_builtin_gc.h
字号:
"vec3 exp2 (vec3 x) {\n"
" return vec3 (exp2 (x.x), exp2 (x.y), exp2 (x.z));\n"
"}\n"
"vec4 exp2 (vec4 x) {\n"
" return vec4 (exp2 (x.x), exp2 (x.y), exp2 (x.z), exp2 (x.w));\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float log2 (float x) {\n"
" return 0.0;\n"
"}\n"
"vec2 log2 (vec2 x) {\n"
" return vec2 (log2 (x.x), log2 (x.y));\n"
"}\n"
"vec3 log2 (vec3 x) {\n"
" return vec3 (log2 (x.x), log2 (x.y), log2 (x.z));\n"
"}\n"
"vec4 log2 (vec4 x) {\n"
" return vec4 (log2 (x.x), log2 (x.y), log2 (x.z), log2 (x.w));\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float sqrt (float x) {\n"
" return pow (x, 0.5);\n"
"}\n"
"vec2 sqrt (vec2 x) {\n"
" return vec2 (sqrt (x.x), sqrt (x.y));\n"
"}\n"
"vec3 sqrt (vec3 x) {\n"
" return vec3 (sqrt (x.x), sqrt (x.y), sqrt (x.z));\n"
"}\n"
"vec4 sqrt (vec4 x) {\n"
" return vec4 (sqrt (x.x), sqrt (x.y), sqrt (x.z), sqrt (x.w));\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float inversesqrt (float x) {\n"
" return 1.0 / sqrt (x);\n"
"}\n"
"vec2 inversesqrt (vec2 x) {\n"
" return vec2 (inversesqrt (x.x), inversesqrt (x.y));\n"
"}\n"
"vec3 inversesqrt (vec3 x) {\n"
" return vec3 (inversesqrt (x.x), inversesqrt (x.y), inversesqrt (x.z));\n"
"}\n"
"vec4 inversesqrt (vec4 x) {\n"
" return vec4 (inversesqrt (x.x), inversesqrt (x.y), inversesqrt (x.z), inversesqrt (x.w));\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float abs (float x) {\n"
" return x >= 0.0 ? x : -x;\n"
"}\n"
"vec2 abs (vec2 x) {\n"
" return vec2 (abs (x.x), abs (x.y));\n"
"}\n"
"vec3 abs (vec3 x) {\n"
" return vec3 (abs (x.x), abs (x.y), abs (x.z));\n"
"}\n"
"vec4 abs (vec4 x) {\n"
" return vec4 (abs (x.x), abs (x.y), abs (x.z), abs (x.w));\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float sign (float x) {\n"
" return x > 0.0 ? 1.0 : x < 0.0 ? -1.0 : 0.0;\n"
"}\n"
"vec2 sign (vec2 x) {\n"
" return vec2 (sign (x.x), sign (x.y));\n"
"}\n"
"vec3 sign (vec3 x) {\n"
" return vec3 (sign (x.x), sign (x.y), sign (x.z));\n"
"}\n"
"vec4 sign (vec4 x) {\n"
" return vec4 (sign (x.x), sign (x.y), sign (x.z), sign (x.w));\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float floor (float x) {\n"
" return 0.0;\n"
"}\n"
"vec2 floor (vec2 x) {\n"
" return vec2 (floor (x.x), floor (x.y));\n"
"}\n"
"vec3 floor (vec3 x) {\n"
" return vec3 (floor (x.x), floor (x.y), floor (x.z));\n"
"}\n"
"vec4 floor (vec4 x) {\n"
" return vec4 (floor (x.x), floor (x.y), floor (x.z), floor (x.w));\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float ceil (float x) {\n"
" return 0.0;\n"
"}\n"
"vec2 ceil (vec2 x) {\n"
" return vec2 (ceil (x.x), ceil (x.y));\n"
"}\n"
"vec3 ceil (vec3 x) {\n"
" return vec3 (ceil (x.x), ceil (x.y), ceil (x.z));\n"
"}\n"
"vec4 ceil (vec4 x) {\n"
" return vec4 (ceil (x.x), ceil (x.y), ceil (x.z), ceil (x.w));\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float fract (float x) {\n"
" return x - floor (x);\n"
"}\n"
"vec2 fract (vec2 x) {\n"
" return vec2 (fract (x.x), fract (x.y));\n"
"}\n"
"vec3 fract (vec3 x) {\n"
" return vec3 (fract (x.x), fract (x.y), fract (x.z));\n"
"}\n"
"vec4 fract (vec4 x) {\n"
" return vec4 (fract (x.x), fract (x.y), fract (x.z), fract (x.w));\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float mod (float x, float y) {\n"
" return x - y * floor (x / y);\n"
"}\n"
"vec2 mod (vec2 x, float y) {\n"
" return vec2 (mod (x.x, y), mod (x.y, y));\n"
"}\n"
"vec3 mod (vec3 x, float y) {\n"
" return vec3 (mod (x.x, y), mod (x.y, y), mod (x.z, y));\n"
"}\n"
"vec4 mod (vec4 x, float y) {\n"
" return vec4 (mod (x.x, y), mod (x.y, y), mod (x.z, y), mod (x.w, y));\n"
"}\n"
"vec2 mod (vec2 x, vec2 y) {\n"
" return vec2 (mod (x.x, y.x), mod (x.y, y.y));\n"
"}\n"
"vec3 mod (vec3 x, vec3 y) {\n"
" return vec3 (mod (x.x, y.x), mod (x.y, y.y), mod (x.z, y.z));\n"
"}\n"
"vec4 mod (vec4 x, vec4 y) {\n"
" return vec4 (mod (x.x, y.x), mod (x.y, y.y), mod (x.z, y.z), mod (x.w, y.w));\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float min (float x, float y) {\n"
" return y < x ? y : x;\n"
"}\n"
"vec2 min (vec2 x, float y) {\n"
" return vec2 (min (x.x, y), min (x.y, y));\n"
"}\n"
"vec3 min (vec3 x, float y) {\n"
" return vec3 (min (x.x, y), min (x.y, y), min (x.z, y));\n"
"}\n"
"vec4 min (vec4 x, float y) {\n"
" return vec4 (min (x.x, y), min (x.y, y), min (x.z, y), min (x.w, y));\n"
"}\n"
"vec2 min (vec2 x, vec2 y) {\n"
" return vec2 (min (x.x, y.x), min (x.y, y.y));\n"
"}\n"
"vec3 min (vec3 x, vec3 y) {\n"
" return vec3 (min (x.x, y.x), min (x.y, y.y), min (x.z, y.z));\n"
"}\n"
"vec4 min (vec4 x, vec4 y) {\n"
" return vec4 (min (x.x, y.x), min (x.y, y.y), min (x.z, y.z), min (x.w, y.w));\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float max (float x, float y) {\n"
" return min (y, x);\n"
"}\n"
"vec2 max (vec2 x, float y) {\n"
" return vec2 (max (x.x, y), max (x.y, y));\n"
"}\n"
"vec3 max (vec3 x, float y) {\n"
" return vec3 (max (x.x, y), max (x.y, y), max (x.z, y));\n"
"}\n"
"vec4 max (vec4 x, float y) {\n"
" return vec4 (max (x.x, y), max (x.y, y), max (x.z, y), max (x.w, y));\n"
"}\n"
"vec2 max (vec2 x, vec2 y) {\n"
" return vec2 (max (x.x, y.x), max (x.y, y.y));\n"
"}\n"
"vec3 max (vec3 x, vec3 y) {\n"
" return vec3 (max (x.x, y.x), max (x.y, y.y), max (x.z, y.z));\n"
"}\n"
"vec4 max (vec4 x, vec4 y) {\n"
" return vec4 (max (x.x, y.x), max (x.y, y.y), max (x.z, y.z), max (x.w, y.w));\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float clamp (float x, float minVal, float maxVal) {\n"
" return min (max (x, minVal), maxVal);\n"
"}\n"
"vec2 clamp (vec2 x, float minVal, float maxVal) {\n"
" return vec2 (clamp (x.x, minVal, maxVal), clamp (x.y, minVal, maxVal));\n"
"}\n"
"vec3 clamp (vec3 x, float minVal, float maxVal) {\n"
" return vec3 (clamp (x.x, minVal, maxVal), clamp (x.y, minVal, maxVal),\n"
" clamp (x.z, minVal, maxVal));\n"
"}\n"
"vec4 clamp (vec4 x, float minVal, float maxVal) {\n"
" return vec4 (clamp (x.x, minVal, maxVal), clamp (x.y, minVal, maxVal),\n"
" clamp (x.z, minVal, maxVal), clamp (x.w, minVal, maxVal));\n"
"}\n"
"vec2 clamp (vec2 x, vec2 minVal, vec2 maxVal) {\n"
" return vec2 (clamp (x.x, minVal.x, maxVal.x), clamp (x.y, minVal.y, maxVal.y));\n"
"}\n"
"vec3 clamp (vec3 x, vec3 minVal, vec3 maxVal) {\n"
" return vec3 (clamp (x.x, minVal.x, maxVal.x), clamp (x.y, minVal.y, maxVal.y),\n"
" clamp (x.z, minVal.z, maxVal.z));\n"
"}\n"
"vec4 clamp (vec4 x, vec4 minVal, vec4 maxVal) {\n"
" return vec4 (clamp (x.x, minVal.x, maxVal.y), clamp (x.y, minVal.y, maxVal.y),\n"
" clamp (x.z, minVal.z, maxVal.z), clamp (x.w, minVal.w, maxVal.w));\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float mix (float x, float y, float a) {\n"
" return x * (1.0 - a) + y * a;\n"
"}\n"
"vec2 mix (vec2 x, vec2 y, float a) {\n"
" return vec2 (mix (x.x, y.x, a), mix (x.y, y.y, a));\n"
"}\n"
"vec3 mix (vec3 x, vec3 y, float a) {\n"
" return vec3 (mix (x.x, y.x, a), mix (x.y, y.y, a), mix (x.z, y.z, a));\n"
"}\n"
"vec4 mix (vec4 x, vec4 y, float a) {\n"
" return vec4 (mix (x.x, y.x, a), mix (x.y, y.y, a), mix (x.z, y.z, a), mix (x.w, y.w, a));\n"
"}\n"
"vec2 mix (vec2 x, vec2 y, vec2 a) {\n"
" return vec2 (mix (x.x, y.x, a.x), mix (x.y, y.y, a.y));\n"
"}\n"
"vec3 mix (vec3 x, vec3 y, vec3 a) {\n"
" return vec3 (mix (x.x, y.x, a.x), mix (x.y, y.y, a.y), mix (x.z, y.z, a.z));\n"
"}\n"
"vec4 mix (vec4 x, vec4 y, vec4 a) {\n"
" return vec4 (mix (x.x, y.x, a.x), mix (x.y, y.y, a.y), mix (x.z, y.z, a.z),\n"
" mix (x.w, y.w, a.w));\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float step (float edge, float x) {\n"
" return x < edge ? 0.0 : 1.0;\n"
"}\n"
"vec2 step (float edge, vec2 x) {\n"
" return vec2 (step (edge, x.x), step (edge, x.y));\n"
"}\n"
"vec3 step (float edge, vec3 x) {\n"
" return vec3 (step (edge, x.x), step (edge, x.y), step (edge, x.z));\n"
"}\n"
"vec4 step (float edge, vec4 x) {\n"
" return vec4 (step (edge, x.x), step (edge, x.y), step (edge, x.z), step (edge, x.w));\n"
"}\n"
"vec2 step (vec2 edge, vec2 x) {\n"
" return vec2 (step (edge.x, x.x), step (edge.y, x.y));\n"
"}\n"
"vec3 step (vec3 edge, vec3 x) {\n"
" return vec3 (step (edge.x, x.x), step (edge.y, x.y), step (edge.z, x.z));\n"
"}\n"
"vec4 step (vec4 edge, vec4 x) {\n"
" return vec4 (step (edge.x, x.x), step (edge.y, x.y), step (edge.z, x.z), step (edge.w, x.w));\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float smoothstep (float edge0, float edge1, float x) {\n"
" const float t = clamp ((x - edge0) / (edge1 - edge0), 0.0, 1.0);\n"
" return t * t * (3.0 - 2.0 * t);\n"
"}\n"
"vec2 smoothstep (float edge0, float edge1, vec2 x) {\n"
" return vec2 (smoothstep (edge0, edge1, x.x), smoothstep (edge0, edge1, x.y));\n"
"}\n"
"vec3 smoothstep (float edge0, float edge1, vec3 x) {\n"
" return vec3 (smoothstep (edge0, edge1, x.x), smoothstep (edge0, edge1, x.y),\n"
" smoothstep (edge0, edge1, x.z));\n"
"}\n"
"vec4 smoothstep (float edge0, float edge1, vec4 x) {\n"
" return vec4 (smoothstep (edge0, edge1, x.x), smoothstep (edge0, edge1, x.y),\n"
" smoothstep (edge0, edge1, x.z), smoothstep (edge0, edge1, x.w));\n"
"}\n"
"vec2 smoothstep (vec2 edge0, vec2 edge1, vec2 x) {\n"
" return vec2 (smoothstep (edge0.x, edge1.x, x.x), smoothstep (edge0.y, edge1.y, x.y));\n"
"}\n"
"vec3 smoothstep (vec3 edge0, vec3 edge1, vec3 x) {\n"
" return vec3 (smoothstep (edge0.x, edge1.x, x.x), smoothstep (edge0.y, edge1.y, x.y),\n"
" smoothstep (edge0.z, edge1.z, x.z));\n"
"}\n"
"vec4 smoothstep (vec4 edge0, vec4 edge1, vec4 x) {\n"
" return vec4 (smoothstep (edge0.x, edge1.x, x.x), smoothstep (edge0.y, edge1.y, x.y),\n"
" smoothstep (edge0.z, edge1.z, x.z), smoothstep (edge0.w, edge1.w, x.w));\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float dot (float x, float y) {\n"
" return x * y;\n"
"}\n"
"float dot (vec2 x, vec2 y) {\n"
" return dot (x.x, y.x) + dot (x.y, y.y);\n"
"}\n"
"float dot (vec3 x, vec3 y) {\n"
" return dot (x.x, y.x) + dot (x.y, y.y) + dot (x.z, y.z);\n"
"}\n"
"float dot (vec4 x, vec4 y) {\n"
" return dot (x.x, y.x) + dot (x.y, y.y) + dot (x.z, y.z) + dot (x.w, y.w);\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float length (float x) {\n"
" return sqrt (dot (x, x));\n"
"}\n"
"float length (vec2 x) {\n"
" return sqrt (dot (x, x));\n"
"}\n"
"float length (vec3 x) {\n"
" return sqrt (dot (x, x));\n"
"}\n"
"float length (vec4 x) {\n"
" return sqrt (dot (x, x));\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float distance (float x, float y) {\n"
" return length (x - y);\n"
"}\n"
"float distance (vec2 x, vec2 y) {\n"
" return length (x - y);\n"
"}\n"
"float distance (vec3 x, vec3 y) {\n"
" return length (x - y);\n"
"}\n"
"float distance (vec4 x, vec4 y) {\n"
" return length (x - y);\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"vec3 cross (vec3 x, vec3 y) {\n"
" return vec3 (x.y * y.z - y.y * x.z, x.z * y.x - y.z * x.x, x.x * y.y - y.x * x.y);\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float normalize (float x) {\n"
" return 1.0;\n"
"}\n"
"vec2 normalize (vec2 x) {\n"
" return x / length (x);\n"
"}\n"
"vec3 normalize (vec3 x) {\n"
" return x / length (x);\n"
"}\n"
"vec4 normalize (vec4 x) {\n"
" return x / length (x);\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float faceforward (float N, float I, float Nref) {\n"
" return dot (Nref, I) < 0.0 ? N : -N;\n"
"}\n"
"vec2 faceforward (vec2 N, vec2 I, vec2 Nref) {\n"
" return dot (Nref, I) < 0.0 ? N : -N;\n"
"}\n"
"vec3 faceforward (vec3 N, vec3 I, vec3 Nref) {\n"
" return dot (Nref, I) < 0.0 ? N : -N;\n"
"}\n"
"vec4 faceforward (vec4 N, vec4 I, vec4 Nref) {\n"
" return dot (Nref, I) < 0.0 ? N : -N;\n"
"}\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"\n"
"float reflect (float I, float N) {\n"
" return I - 2.0 * dot (N, I) * N;\n"
"}\n"
"vec2 reflect (vec2 I, vec2 N) {\n"
" return I - 2.0 * dot (N, I) * N;\n"
"}\n"
"vec3 reflect (vec3 I, vec3 N) {\n"
" return I - 2.0 * dot (N, I) * N;\n"
"}\n"
"vec4 reflect (vec4 I, vec4 N) {\n"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -