Unity自定义shader——多光源、阴影

前向渲染路径

Unity的前向渲染路径是一种在移动平台下常见的渲染路径,在场景会按顺序渲染每个物体。包括以下几个阶段:

  1. 几何体绘制阶段:该阶段会将场景中的每个几何体分别渲染出来,以生成深度缓冲区和颜色缓冲区。

  1. 阴影绘制阶段:该阶段会将所有光源投射的阴影进行绘制,生成阴影贴图。

  1. 透明物体绘制阶段:该阶段会将所有透明物体进行绘制,因为透明物体的渲染需要考虑混合和排序问题。

  1. 后处理阶段:该阶段会进行后处理,如HDR(高动态范围)渲染、环境光遮蔽(Ambient Occlusion)、反射、全局光照等。

Shader中设置以支持前向渲染:

Unity自定义shader——多光源、阴影_第1张图片

Pass的LightMode还有下面几种:

Unity自定义shader——多光源、阴影_第2张图片

在处理多光源时,在BasePass中处理最重要的平行光AdditionalPass中处理额外的光源,每多一个光源就会调用一次AdditionalPass,如下:

Unity自定义shader——多光源、阴影_第3张图片
  • 在渲染设置中,除了设置Pass的标签外,还使用了#pragma multi_compile_fwdbase和#pragma multi_compile_fwdadd的编译指令,以得到我们在shader中使用光照衰减等正确的光照变量。

  • Base Pass中渲染的平行光默认

你可能感兴趣的:(Unity渲染,unity)