渲染用途

默认情况下,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
后期处理或通用计算 Pass misc/quad 引擎预留

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

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

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>
}%

条与 "" 相匹配的结果

    没有与 "" 匹配的结果