# 内置效果和定义
框架内置了一些效果资源。
# 内置效果
目前除去内部效果之外,暴露给开发者会使用的效果有两个:
在内置的之外,开发者还可能会自定义效果,这里就可能会用到一些内置的uniforms、宏和着色器方法,我们将其列举如下:
# 内置Uniforms和宏
框架内置了一些uniforms和宏,便于开发者使用,它们分为以下几个大类:
# 基础
类型 | 宏 | 说明 |
---|---|---|
是否为蒙皮网格 | WX_SKINNED | bool |
骨骼数量 | WX_BONE_NUM | int |
是否使用骨骼数据纹理 | WX_USE_BONE_MATRIX_TEXTURE | bool |
类型 | uniforms | 说明 |
---|---|---|
视图矩阵 | u_view | mat4 |
投影矩阵 | u_projection | mat4 |
世界矩阵 | u_world | mat4 |
视图投影矩阵 | u_vp | mat4 |
视图逆矩阵 | u_viewInverse | mat4 |
游戏时间戳 | u_gameTime | float |
骨骼偏移矩阵 | u_boneOffsetMatrix | mat4[宏决定] |
骨骼矩阵太大时,转换为的贴图 | u_boneMatrixTexture | texture2d |
# 图元数据相关
图元数据相关的主要是创建几何数据时定义的那些attributes
,由usage
决定,每中usage
对应唯一的宏,比如:
xrFrameSystem.EVertexLayoutUsage.NORMAL
对应于WX_USE_NORMAL
。
# 后处理相关
主要是要注意开了后处理时,前置的渲染流程需要保证输出是线性的,可能要视情况removeGamma
:
vec3 removeGammaCorrection(vec3 color) {
return pow(color, vec3(2.2));
}
类型 | 宏 | 说明 |
---|---|---|
是否开启了后处理 | WX_PP_ACTIVE | bool |
# 光照和阴影相关
可见灯光相关部分。
# 环境相关
可见环境相关部分。
# 内置着色器方法
@todo