内置效果和定义

框架内置了一些效果资源。

内置效果

目前除去内部效果之外,暴露给开发者会使用的效果有两个:

  1. 简单无光照效果 simple
  2. 标准物理渲染效果 standard

在内置的之外,开发者还可能会自定义效果,这里就可能会用到一些内置的uniforms、宏和着色器方法,我们将其列举如下:

内置Uniforms和宏

框架内置了一些uniforms和宏,便于开发者使用,它们分为以下几个大类:

基础

类型 说明
是否为蒙皮网格 WX_SKINNED 布尔值
骨骼数量 WX_BONE_NUM 整数
是否使用骨骼数据纹理 WX_USE_BONE_MATRIX_TEXTURE 布尔值
类型 uniforms 说明
视图矩阵 u_view 4×4矩阵
投影矩阵 u_projection 4×4矩阵
世界矩阵 u_world 4×4矩阵
视图投影矩阵 u_vp 4×4矩阵
视图逆矩阵 u_viewInverse 4×4矩阵
游戏时间戳 u_gameTime 浮点数
骨骼偏移矩阵 u_boneOffsetMatrix 4×4矩阵数组(大小由宏决定)
骨骼矩阵太大时,转换为的贴图 u_boneMatrixTexture 2D纹理

图元数据相关

图元数据相关的主要是创建几何数据时定义的那些attributes,由usage决定,每中usage对应唯一的宏,比如:

xrFrameSystem.EVertexLayoutUsage.NORMAL对应于WX_USE_NORMAL

后处理相关

主要是要注意开了后处理时,前置的渲染流程需要保证输出是线性的,可能要视情况removeGamma

vec3 removeGammaCorrection(vec3 color) {
  return pow(color, vec3(2.2));
}
类型 说明
是否开启了后处理 WX_PP_ACTIVE 布尔值

光照和阴影相关

可见灯光相关部分。

环境相关

可见环境相关部分。

内置着色器方法

@todo