内置变量

Shader 代码中会经常用到内置变量,一种是逐顶点attribute 变量,另一种是逐 shaderuniform 变量。

下面是引擎内置变量,可以在写 Shader 的时候进行参考:

顶点输入

逐顶点数据attribute name数据类型
顶点POSITIONvec3
法线NORMALvec3
切线TANGENTvec4
顶点颜色COLOR_0vec4
骨骼索引JOINTS_0vec4
骨骼权重WEIGHTS_0vec4
第一套纹理坐标TEXCOORD_0vec2
第二套纹理坐标TEXCOORD_1vec2

属性

渲染器

名字类型解释
renderer_LocalMatmat4模型本地坐标系矩阵
renderer_ModelMatmat4模型世界坐标系矩阵
renderer_MVMatmat4模型视口矩阵
renderer_MVPMatmat4模型视口投影矩阵
renderer_NormalMatmat4法线矩阵

相机

名字类型解释
camera_ViewMatmat4视口矩阵
camera_ProjMatmat4投影矩阵
camera_VPMatmat4视口投影矩阵
camera_ViewInvMatmat4视口逆矩阵
camera_Positionvec3相机位置
camera_DepthTexturesampler2D深度信息纹理
camera_OpaqueTexturesampler2D非透明纹理
camera_DepthBufferParamsVec4相机深度缓冲参数:(x: 1.0 - far / near, y: far / near, z: 0, w: 0)
camera_ProjectionParamsVec4投影矩阵相关参数:(x: flipProjection ? -1 : 1, y: near, z: far, w: 0)

时间

名字类型解释
scene_ElapsedTimevec4引擎启动后经过的总时间:(x: t, y: sin(t), z:cos(t), w: 0)
scene_DeltaTimevec4距离上一帧的间隔时间:(x: dt, y: 0, z:0, w: 0)

名字类型解释
scene_FogColorvec4雾的颜色
scene_FogParamsvec4雾的参数:(x: -1/(end-start), y: end/(end-start), z: density / ln(2), w: density / sqr(ln(2))

这篇文档对您有帮助吗?