欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 着色器笔记

着色器笔记

2025/4/19 15:42:26 来源:https://blog.csdn.net/qq_42048638/article/details/144183101  浏览:    关键词:着色器笔记

基本数据类型

bool int float
向量
vec2 // 二维向量,具有xy俩个分量,分量是浮点数
vec3 // 三维向量,具有xyz三个分量,分量是浮点数
vec4 // 四维向量,具有xyzw四个分量,分量是浮点数
ivec2 // 二维向量,分量是整数
ivec3 // 三维向量,分量是整数
ivec4 // 四维向量,分量是整数
bvec2 // 二维向量,分量是布尔值
bvec3 // 三维向量,分量是布尔值
bvec4 // 四维向量,分量是布尔值//四维向量有四个分量,可以用来表示颜色的R、G、B、A
// 红色不透明
vec4 clolr = vec4(1.0,0.0,0.0,1.0); 
// 顶点坐标 xyz坐标
vec3 pos = vec3(1.0,2.0,3.0) 
// 齐次坐标,表示顶点坐标的时候,增加一个分量,语法规定加一个1.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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词