递归渲染 (Recursive rendering)
此功能是用于在高清渲染管线 (High Definition Render Pipeline, HDRP) 中渲染网格的替代管线。使用该渲染模式的游戏对象将递归投射出折射和反射光线。这意味着,当光线射到表面上时,它会反射或折射并继续射到其他表面上。您可以根据项目需求,控制光线这样做的最大次数。
材质的平滑度不会影响光线的反射或折射方式,这使得此渲染模式对于渲染多层透明游戏对象非常有用。
以递归光线追踪技术渲染的汽车换档装置
使用递归渲染
递归渲染使用体积 (Volume) 框架,因此若要启用此功能和修改其属性,必须将递归渲染覆盖添加到场景中的体积。为此需要执行以下操作:
- 在 Scene 视图或 Hierarchy 视图中,选择一个包含 Volume 组件的游戏对象以在 Inspector 中查看该游戏对象。
- 在 Inspector 中,导航到 Add Override > Ray Tracing,然后单击 Recursive Rendering。
- 在 Recursive Rendering Volume Override 的 Inspector 中,启用 Ray Tracing。如果不能看到 Ray Tracing 选项,请确保您的 HDRP 项目支持光线追踪。如需了解如何在 HDRP 中设置光线追踪,请参阅光线追踪入门。
现在,您已经在场景中设置了递归渲染,接下来必须将游戏对象设置为使用光线追踪渲染通道,以使 HDRP 对游戏对象使用递归渲染。为此需要执行以下操作:
- 在 Scene 视图或 Hierarchy 中选择游戏对象以在 Inspector 中查看该游戏对象。
- 选择附加到该游戏对象的材质。
- 在 Surface Options 折叠箭头下,从 Rendering Pass 下拉选单中选择 Raytracing。
您也可以对 Shader Graph 主节点执行此操作:
- 在 Project 窗口中,双击 Shader 以在 Shader Graph 中将其打开。
- 在主节点上,单击齿轮图标,然后从 Rendering Pass 下拉选单中选择 Raytracing。
属性
属性 | 描述 |
---|---|
LayerMask | 定义需要 HDRP 处理该光线追踪效果的层。 |
Max Depth | 控制光线在停止并返回最终颜色之前可以反射或折射的最大次数。增大此值将呈指数增加执行时间。 |
Ray Length | 控制 HDRP 用于光线追踪的光线长度。如果光线未找到相交点,则光线将返回天空的颜色。 |