Skip to content

渲染用途

默认情况下,Surface Shader 都是以输出到屏幕上,显示场景为主。

但有时候,我们也有一些特殊需要,比如:

  • 渲染为阴影贴图(ShadowMap)
  • 渲染为环境反射图(Reflection Probe)

不同的渲染用途,有不同的渲染流程和细节,因此需要特殊处理。

Surface Shader 框架中,预定义了常见的不同用途的流程,在 资源管理器/internal/chunks/shading-entries/main-functions/ 目录下可以找到。

以下是内置的渲染用途:

常用的渲染用途文件位置备注
渲染到场景(默认)render-to-scene
渲染到阴影贴图render-to-shadowmap
渲染到环境贴图render-to-reflectmap可选
渲染卡通描边misc/silhouette-edge
渲染天空misc/sky
后期处理或通用计算 Passmisc/quad引擎预留

只需要在 Surface Shader 组装 环节引用对应的头文件,就可以完成渲染流程。

比如,在 internal/effects/builtin-standard.effect 中,我们可以看到应用案例:

glsl
CCPogram standard-vs %{
    ...
    #include <shading-entries/main-functions/render-to-scene/vs>
}%

CCProgram shadow-caster-vs %{
    ...
    #include <shading-entries/main-functions/render-to-shadowmap/vs>
}%

CCPogram standard-fs %{
    ...
    #include <shading-entries/main-functions/render-to-scene/fs>
}%

CCProgram shadow-caster-fs %{
    ...
    #include <shading-entries/main-functions/render-to-shadowmap/fs>
}%

CCProgram reflect-map-fs %{
    ...
    #include <shading-entries/main-functions/render-to-shadowmap/fs>
}%