参考glsl文档
threejs 内置变量
vertex shader
- highp vec4 gl_PointSize 点大小
- mediump float gl_Position 不用多说
fragment shader
- mediump vec4 gl_FragCoord 屏幕坐标系
- bool gl_FrontFacing
- mediump vec4 gl_FragColor 最重要的
- mediump vec4 gl_FragData[gl_MaxDrawBuffers] 缓存数据
- mediump vec2 gl_PointCoord 点使用纹理的时候用的坐标系
常量
- const mediump int gl_MaxVertexAttribs = 8;
- const mediump int gl_MaxVertexUniformVectors = 128;
- const mediump int gl_MaxVaryingVectors = 8;
- const mediump int gl_MaxVertexTextureImageUnits = 0;
- const mediump int gl_MaxCombinedTextureImageUnits = 8;
- const mediump int gl_MaxTextureImageUnits = 8;
- const mediump int gl_MaxFragmentUniformVectors = 16;
- const mediump int gl_MaxDrawBuffers = 1;
内置函数
有不太懂的函数可以在这个网站上查看一下,效果比较直观。就不贴图了,毕竟还是自己动手来的好。
三角函数
- radians 角度转弧度
- degree 弧度转角度
- sin
- cos
- tan
- asin
- acos
- atan
指数函数
- pow
- exp
- log
- exp2
- log2
- sqrt
- inversesqrt = 1/sqrt
常用函数
- abs
- sign
- floor
- ceil
- fract = x - floor(x)
- mod
- min
- max
- clamp
- mix
- step
- smoothstep
几何函数
- length
- distance
- dot
- cross
- normalize
- faceforward
- reflect
- refract
矩阵函数
- matrixCompMult
向量相关函数
- lessThan
- lessThanEqual
- greaterThan
- greaterThanEqual
- equal
- notEqual
- any
- all
- not
纹理相关函数
- texture2D
- texture2DProj
- texture2DLod
- texture2DProjLod
- textureCube
- textureCubeLod