基本数据类型
bool int float
向量
vec2
vec3
vec4
ivec2
ivec3
ivec4
bvec2
bvec3
bvec4
vec4 clolr = vec4(1.0,0.0,0.0,1.0);
vec3 pos = vec3(1.0,2.0,3.0)
vec4 pos = vec4(1.0,2.0,3.0,1.0)
vec3 pos = vec3(1.0,2.0,3.0)
vec4 newPos = vec4(pos,1.0)
vec2 pos = vec3(1.0,2.0)
vec4 newPos = vec4(pos,3.0,1.0)
内置变量
gl_PointSize:点渲染像素大小,数据类型浮点型flaotgl_Postition:顶点坐标,数据类型四维向量vec4gl_FragColor:像素颜色,数据类型四维向量vec4postion:调用ShaderMaterial的时候,threejs会内部給你的顶点着色器代码中插入一行,在顶点着色器代码中访问position,相当于获取顶点位置数据geometry.attributes.position
attribute vec3 position;
void main(){gl_Position = vec4(position,1.0)
}
modelMatrix:4x4的模型矩阵mat4,使用ShaderMaterial的时候,自动获取模型世界矩阵mesh.matrixWorld的值,赋值給变量modelMatrix,意味着,模型矩阵modelMatrix包含了模型自身的位置、缩放、姿态角度信息
uniform mat4 modelMatrix;
viewMatrix:视图矩阵(默认)来自相机视图矩阵属性camera.matrixWorldInverseprojectionMatrix:投影矩阵(默认)来自相机投影矩阵属性camera.projectionMatrixmodelViewMatrix:模型视图矩阵(默认)相当于modelMatrx*viewMatrix