基本数据类型
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
:点渲染像素大小,数据类型浮点型flaot
gl_Postition
:顶点坐标,数据类型四维向量vec4
gl_FragColor
:像素颜色,数据类型四维向量vec4
postion
:调用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.matrixWorldInverse
projectionMatrix
:投影矩阵(默认)来自相机投影矩阵属性camera.projectionMatrix
modelViewMatrix
:模型视图矩阵(默认)相当于modelMatrx*viewMatrix