平面反射探针 (Planar Reflection Probe)
平面反射探针组件是高清渲染管线 (High Definition Render Pipeline, HDRP) 提供的反射探针类型之一,可用于创建快速反应的精确反射材质。
属性
平面反射探针与内置渲染管线反射探针和 HDRP 立方体贴图反射探针共享许多属性。
平面反射探针使用的纹理格式与 HDRP 资源中为颜色缓冲区格式选择的选项相同。
一般属性
属性 | 描述 |
---|---|
Realtime Mode | 平面反射探针实时更新。使用此属性指示 HDRP 更新探针的频率。 • Every Frame:每帧更新探针的捕获数据。 • On Enable:在 Unity 每次调用组件的 OnEnable() 函数时都会更新探针的捕获数据。每当在 Inspector 中启用组件或激活组件附加到的游戏对象时,就会执行此操作。• On Demand:根据请求来更新探针的捕获数据。为此,需要访问探针的 HDAdditionalReflectionData 并调用 RequestRenderNextUpdate() 函数。 |
Projection Settings
以下属性用于控制此平面反射探针的投影设置。
属性 | 描述 |
---|---|
Proxy Volume | 此探针使用的反射代理体积 (Reflection Proxy Volume),用于纠正探针捕获点 (Mirror Position) 与此探针捕获的反射材质(使用 RenderTexture)位置之间的位移问题。注意:指定的 Proxy Volume 必须与影响体积 (Influence Volume) 具有相同的形状 (Shape)。 |
Use Influence Volume As Proxy Volume | 勾选此复选框可以使用影响体积 (Influence Volume) 的边界作为代理体积 (Proxy Volume)。 仅当反射代理体积 (Reflection Proxy Volume) 未设置为 Proxy Volume 属性时,才显示此属性。 |
Influence Volume
影响体积 (Influence Volume) 定义探针周围的区域,此区域中的反射材质使用探针捕获的结果来影响其表面的反射行为。如果不提供覆盖值,则平面反射探针还使用影响体积的边界来计算视野 (Field Of View)。
对于未与平面探针方向对齐的反射对象,当反射的光线离开反射的摄像机视野时,反射将平滑地淡出。
属性 | 描述 |
---|---|
Shape | 定义影响体积的形状。可能的值为 Box 和 Sphere。以下属性的可用性取决于选定的形状。 |
Box Size | 定义表示影响体积的盒体的每个轴的缩放。仅适用于 Box Shape。 |
Radius | 定义表示影响体积的球体的半径。仅适用于 Sphere Shape。 |
Per Axis Control | 启用此复选框可以控制每个轴的混合距离 (Blend Distance)。仅适用于 Box Shape。 |
Blend Distance | 与 Box Size 或 Radius 之间的向内距离,该平面反射探针在此距离处与其他反射探针混合。在 Normal 模式下,此属性是单个值,用于调节该反射探针在各个方向上与其他反射探针混合的距离。此模式适用于 Box 或 Sphere 影响体积。对于 Box 形状,当启用 Per Axis Control 时,此属性使用六个值,盒体的每个面对应一个值。使用六个输入字段中的每一个字段来定义每个方向上的混合距离。例如,Y 定义盒体顶面的混合距离,而 -Y 定义底面的混合距离。此模式仅适用于 Box 影响体积。此功能仅适用于延迟反射探针。 |
Capture Settings
以下属性可以控制平面反射探针用于捕获其周围环境的方向视图的方法。
属性 | 描述 |
---|---|
Field Of View Mode | 定义在计算视野时使用的模式。 |
Clear Mode | 定义如何填充此探针捕获的 RenderTexture 的空背景区域。 • Sky 使用当前体积设置定义的天空来填充空背景区域。 • Color 使用 Background Color 设置来填充空背景区域。 • None 重复使用每个不代表反射游戏对象的像素的先前值,而不是填充 RenderTexture 的空区域。 |
Background Color | 在 Clear Mode 设置为 Background 的情况下用于填充 RenderTexture 空背景区域的颜色。 |
Clear Depth | 选择平面反射探针是否清除深度缓冲区。 |
Volume Layer Mask | 此 LayerMask 用于定义哪些体积会影响此平面反射探针的捕获。 |
Volume Anchor Override | 设置体积系统用于处理此平面反射探针位置的变换组件。例如,如果希望此平面反射探针将后期处理效果与视图摄像机相匹配,请将此属性设置为视图摄像机的变换组件。然后,体积系统使用摄像机的位置来处理哪个体积会影响此平面反射探针。 |
Use Occlusion Culling | 为此平面反射探针启用遮挡剔除 (Occlusion Culling)。 |
Culling Mask | 此 LayerMask 用于定义要包含在反射中的层。此 LayerMask 中包含的层上的游戏对象会出现在反射中。 |
Clipping Planes - Near | 平面反射探针捕获反射的最近点(相对于探针)。 |
Clipping Planes - Far | 平面反射探针捕获反射的最远点(相对于探针)。 |
Probe Layer Mask | 用作环境光(来自其他平面反射探针和反射探针的光)的剔除遮罩。此平面反射探针会忽略未包含在此层遮罩中的层上的所有反射探针,因此在渲染此平面反射探针时,请使用该属性忽略某些反射探针。 |
Custom Frame Settings | 为此探针定义自定义的帧设置 (Frame Settings)。禁用此属性会使用 Unity 项目的 HDRP 资源中的默认帧设置。 |
Resolution | 设置此平面反射探针的分辨率。使用下拉选单选择要从哪种质量模式获得分辨率。如果选择 Custom,请在输入字段中设置以像素为单位的分辨率。较高的分辨率会增加平面反射的保真度,而代价是 GPU 性能和内存使用量,因此,如果遇到任何性能问题,请尝试使用较低的值。 |
Rough Reflections | 禁用此复选框可以告知 HDRP 使用该平面反射探针作为反射镜。如果这样做,接收表面必须完全光滑,否则反射结果将不准确。如果想要完美的反射,禁用此选项会很有用,因为这意味着 HDRP 不需要处理粗糙的折射,因此可以降低效果的资源消耗。 |
Mirror Position | 从变换位置偏移反射镜位置。 仅当启用此部分的更多选项时,才显示此属性。 |
Range Compression Factor | HDRP 将探针渲染结果除以的因子。这对于处理反射中很亮或很暗的对象(否则会饱和)很有用。 仅当启用此部分的更多选项时,才显示此属性。 |
Render Settings
以下属性用于控制额外的行为选项以微调平面反射探针的行为。
属性 | 描述 |
---|---|
Light Layer | 一种遮罩,允许选择此反射探针影响的光源层。此反射探针仅影响具有匹配渲染层遮罩 (Rendering Layer Mask) 的网格渲染器或地形。 导航到项目的 HDRP Asset > Render Pipeline Supported Features,然后启用 Light Layers 来使用此属性。 |
Multiplier | HDRP 应用于平面反射探针捕获的 RenderTexture 的乘数。较高的乘数值使查询的 RenderTexture 更亮,而较低的乘数值使查询的 RenderTexture 更暗。 |
Weight | 此反射探针对材质反射效果的影响的总权重。当反射探针混合在一起时,每个探针的权重决定了它们对混合区域中反射材质的影响程度。 |
Fade Distance | 与摄像机之间的距离(以米为单位):反射从此距离处开始平滑淡出,直至完全消失。 |
辅助图标
可以使用 Scene 视图辅助图标来直观地自定义特定属性。
辅助图标 | 属性 | 描述 |
---|---|---|
Influence Volume boundary | 提供 Scene 视图控制柄,可用于移动影响体积(定义此反射探针影响反射材质的区域)的边界。根据选择的 Shape 设置,编辑 Box Size 或 Radius 值。 | |
Blend Distance boundary | Scene 视图控制柄,可用于更改与 Box Size 或 Radius 之间的向内距离(该平面反射探针在此距离处与其他反射探针混合)。对于 Box 形状,当启用 Per Axis Control 时,盒体的每个大小都有一个单独的控制柄。 | |
Blend Normal Distance boundary | 提供 Scene 视图控制柄,可用于调整边界的大小(在此区域内,如果像素具有背离捕获位置 (Capture Position) 的法线,则不会受到该探针的任何影响)。 | |
Mirror Position | 更改移动工具 (Move Tool) 的行为,使其更改 Mirror Position 属性而不更改 Transform 的 Position。 | |
Mirror Rotation | 更改旋转工具 (Rotate Tool) 的行为,使其更改 Mirror Rotation 属性而不更改 Transform 的 Rotation。 | |
Chrome Gizmo | 显示一个镀铬四边形以在场景中预览探针的纹理。 |
最佳实践
如果使用平面反射探针作为反射镜(即探针的影响体积与材质平滑度和金属度属性设置为 1 的游戏对象重叠),则最佳做法是禁用 Rough Refraction 属性以降低资源消耗量。 如果接收表面不是完美的反射镜,并且禁用了 Rough Reflection 选项,则该表面仍会呈现出平滑效果,但是结果在物理上是不正确的。