常用 shader 内置 Uniform

要在 shader 中使用内置变量,需要包含对应头文件。 目前所有的内置变量,按所在头文件分组,依次有:

cc-local.chunk

NameTypeInfo
cc_matWorldmat4模型空间转世界空间矩阵
cc_matWorldITmat4模型空间转世界空间逆转置矩阵

cc-global.chunk

NameTypeInfo
cc_timevec4x:游戏运行时间(秒)
cc_screenSizevec4xy:屏幕尺寸 zw:屏幕尺寸倒数
cc_screenScalevec4xy:屏幕缩放 zw:屏幕缩放倒数
cc_nativeSizevec4xy:实际着色缓冲的尺寸 zw:实际着色缓冲的尺寸倒数
cc_matViewmat4视图矩阵
cc_matViewInvmat4视图逆矩阵
cc_matProjmat4投影矩阵
cc_matProjInvmat4投影逆矩阵
cc_matViewProjmat4视图投影矩阵
cc_matViewProjInvmat4视图投影逆矩阵
cc_cameraPosvec4xyz:相机位置
cc_exposurevec4x:相机曝光 y:相机曝光倒数 z:是否启用 HDR w:HDR 转 LDR 缩放参数
cc_mainLitDirvec4xyz:主方向光源方向
cc_mainLitColorvec4xyz:主方向光颜色 w:主方向光强度
cc_ambientSkyvec4xyz:天空颜色 w:亮度
cc_ambientGroundvec4xyz:地面反射光颜色

cc-environment.chunk

NameTypeInfo
cc_environmentsamplerCubeIBL 环境贴图

cc-forward-light.chunk

NameTypeInfo
cc_sphereLitPos[MAX_LIGHTS]vec4xyz:球面光位置
cc_sphereLitSizeRange[MAX_LIGHTS]vec4x:球光尺寸 y:球光范围
cc_sphereLitColor[MAX_LIGHTS]vec4xyz:球光颜色 w:球光强度
cc_spotLitPos[MAX_LIGHTS]vec4xyz:聚光灯位置
cc_spotLitSizeRangeAngle[MAX_LIGHTS]vec4x:聚光灯尺寸 y:聚光灯范围 z:聚光灯角度
cc_spotLitDir[MAX_LIGHTS]vec4xyz:聚光灯方向
cc_spotLitColor[MAX_LIGHTS]vec4xyz:聚光灯颜色 w:聚光灯强度

cc-shadow.chunk

NameTypeInfo
cc_matLightPlaneProjmat4平面阴影的变换矩阵
cc_shadowColorvec4阴影颜色