# 内置效果和定义

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

# 内置效果

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

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

在内置的之外,开发者还可能会自定义效果,这里就可能会用到一些内置的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