当前位置:   article > 正文

04. Getting started|| Forward and Deferred Rendering / 前置渲染和延迟渲染_unity forward与deferred

unity forward与deferred

可以对照着现有文档观看,如果有误,已现有官方文档为准

Forward and Deferred rendering

高清渲染管线(HDRP)允许你使用Forward或者Deferred来渲染画面材质。你可以将你的Unity项目配置为仅使用其中一个模式,或者允许两个同时使用,并在运行的时候基于每个摄像机进行切换。

Using Forward or Deferred rendering

Unity使用Forward或者Defeered渲染之前,你必须确保你的HDRP资源支持它们。这样做:

  1. 在Project窗口中选择你的HDRP资源,在Inspector窗口查看。
  2. Rendering 部分,使用Lit Shader Mode下拉菜单选择HDRP支持的渲染模式。
    在这里插入图片描述

你可以在三种渲染模式之间进行选择:

Lit Shader ModeDescription
Forward当渲染每一个单独的材质时,HDRP就会计算一次照明。
DeferredHDRP将所有的GameObject渲染到一个GBuffer中,该GBuffer中存储着屏幕上可见的材质属性,然后HDRP为场景中的每个GameObject处理照明
Both使用帧设置在运行时根据每个摄像机和反射探针,在ForwardDeferred渲染模式之间进行切换,选择这个会增加项目的打包时间

如果你选择了Both,则可以设置所有摄像机默认使用的渲染模式。并在运行时为特定相机覆盖此默认渲染模式。例如,可以用Forward模式用于平面反射探针,使用Deferred模式渲染主摄像机。

设置默认渲染模式:

  1. 在Project窗口选择你的HDRP资源,在Inspector窗口查看。
  2. 前往 Default Frame Settings For Camera > Rendering,然后从Lit Shader Mode下拉菜单中选择要默认要作为默认渲染模式。

要编辑特定摄像机的渲染模式,请执行以下操作:

  1. 在Hierarchy窗口选择摄像机并在Inspector窗口查看,然后启用Custom Frame Settings 复选框。
  2. Rendering部分,启用Lit Shader Mode属性左侧的复选框,这样你就可以更改这个相机的Lit Shader Mode了,并且向HDRP指示应使用新值。
  3. 从Lit Shader Mode 下拉菜单中选择你要此相机使用的渲染模式。
    在这里插入图片描述

Selecting a Lit Shader Mode

要决定使用Forward渲染模式还是Deferred渲染模式,需要考虑到项目的质量和性能配置。在大多数情况下,例如具有各种材质和多个局部灯光的场景,HDRP中的Deferred渲染模式速度会更快。有些场景,例如场景中只有一个定向光的场景,使用Forward渲染模式会更快。如果你项目用需要考虑性能问题,可以使用Forward渲染模式以获得更好的渲染质量。

HDRP对以下类型的着色器强制执行Forward渲染:

  • Fabric
  • Hair
  • AxF
  • StackLit
  • Unlit
  • Lit Shader with a Transparent Surface Type

如果在HDRP资源中将Lit Shader Mode 设置为Deferred,则HDRP将使用Deferred渲染模式来选渲染所有的使用了不透明的Lit材质

Forward渲染和Deferred渲染实现的都是相同的功能,但是他们之间的表现质量可能有所不同。这意味着HDRP可以为你选择的任何Lit Shader Mode使用所有功能。例如,屏幕空间反射(Screen Space Reflection),屏幕空间环境光遮挡(Screen Space Ambient Occlusion),贴花(Decals)和接触阴影都可以在在Lit Sdader Mode的Deferrend或者Forward下正常工作。虽然这两个特性都是HDRP的核心,但是由于技术限制,在Lit Shader Mode的两个模式之间,这些效果的质量和准确性还是会有所不同的。

Differences between Forward and Deferred rendering in HDRP

Visual differences / 视觉上的差异

  • Normal shadow bias(正常的阴影偏移):在Forward模式下,HDRP使用几何法线(顶点法线)进行阴影便宜,而Deferred模式则使用正常的像素,这意味着Forward模式比Deferred模式下产生的阴影伪影更少。
  • Emissive Color(发光颜色):在Deferred模式下,由于技术限制,环境光遮挡会印象发光颜色,在Forward模式下就不是这种情况。
  • Ambient Occlusion(环境光遮蔽):在Deferred模式下,HDRP将环境光遮挡应用于间接漫射照明(光照贴图和光探针)以及屏幕空间环境光遮挡效果。这会导致不正确的变黑。在Forward模式下,HDRP应用最小量的环境光遮挡和屏幕空间环境光遮挡,这将导致正确的变暗。
  • Material Quality(材质品质):在Deferred模式下,HDRP会压缩GBuffer中的Material属性,例如法线或者切线。这导致压缩假象。在Forward模式下,没有压缩,因此没有压假象。

Technical differences / 及家属差异

  • 对于使用Forward模式的材质,
    HDRP始终通过预渲染景深(Depth),从而输出景深(Depth)和普通缓冲区(normal buffer)。这是一个可选项,如果你不是用贴花(Decals)。
  • 在Forward模式,HDRP在decal DBuffer传递之后更新普通缓冲区。HDRP使用普通缓冲区来实现屏幕空间反射和其他效果。

Build time

当使用Forward渲染或者Deferred渲染时,HDRP项目的构建打包时间会更快,选择Lit Shader Mode是Both时,它会增加玩家的打包时间,因为Unity会为每种材质创建两套着色器,一套用于Forward,另一套用于Derferred.如果你对于项目中的所有内容都用特定的渲染模式,那么你就应该使用一个渲染模式,而不是同时使用这两种渲染模式,用以减少打包时间,这也减少了HDRP为着色器分配的内存大小。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/108623
推荐阅读
相关标签
  

闽ICP备14008679号