Version: 6000.3
语言: 中文
URP 中的反射
反射问题排查

URP中的反射探针

URP 使用以下属性来确定反射探针(Reflection Probes一个渲染组件,可捕获周围环境的各个方向的球形视图,就像摄像机一样。然后,捕获的图像将存储为立方体贴图,可供具有反射材质的对象使用。更多信息
请参阅术语表
设置为游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表
:

  • 反射探针体积
  • 混合距离(Blend Distance)

注意:递延和前进 渲染路径渲染管道用于渲染图形的技术。选择不同的渲染路径会影响照明和着色的计算方式。某些渲染路径比其他路径更适合不同的平台和硬件。更多信息
请参阅术语表
使用基于对象边界框从 CPU 端设置的每个对象反射探针。执行间接绘制调用时,GPU 没有进行反射探针查找所需的信息。Unity 支持在 Forward+Deferred+ 渲染路径中间接绘制的反射探针。

反射探头体积

每个反射探头都有一个盒子体积。反射探针仅影响盒子体积内的游戏对象部分。当像素计算机图像中的最小单位。像素大小取决于您的屏幕分辨率。像素光照是在每个屏幕像素下计算的。更多信息
请参阅术语表
对象的任何反射探针体积之外,Unity 使用天空盒(skybox) 一种特殊类型的材质,用于表示天空。通常是六面的。更多信息
请参阅术语表
反射。

在 URP 中,Unity 会根据启用反射探针混合时像素相对于探针体积边界的位置来评估每个探针对每个像素的贡献。

此行为与内置渲染管线(Render Pipeline) 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息
请参阅术语表
,其中 Unity 评估探针对整个对象的贡献。

混合距离(Blend Distance)

每个反射探针都有 混合距离(Blend Distance) 属性。此属性是从反射盒体积面到盒体中心的距离。

Unity 使用 Blend Distance 属性来确定反射探针的贡献。当对象的像素位于反射探针体积的表面上时,该像素从探针获得 0% 的反射。当像素位于反射探针体积内,并且其与每个面的距离超过混合距离值时,该像素将获得 100% 的反射。

如果 混合距离(Blend Distance) 值超过反射探针体积面之间距离的一半,则反射探针无法为体积内的任何像素提供100%的贡献。

哪些反射探针会影响游戏对象

当游戏对象位于多个反射探针体积内时,最多两个探针可以影响游戏对象。Unity 使用以下条件选择哪些探针会影响游戏对象:

  • 反射探针的 Importance 属性。Unity 选择两个具有较高 Importance 值的探针,并忽略其他探针。

  • 如果 Importance 值相同,Unity 会选择具有最小盒子体积的探针。

  • 如果 Importance 值和盒子体积相同,Unity 会确定哪两个反射探针体积包含游戏对象的更大表面积,并选择这些体积的探针。

当两个反射探针影响游戏对象时,对于每个像素,Unity 会根据该像素与探针盒体积面的距离和 Blend Distance 属性的值来计算每个探针的权重。

如果像素相对靠近两个盒子体积的面,并且两个探针的权重之和小于 1,则 Unity 会将剩余权重分配给_GlossyEnvironmentCubeMap.此立方体贴图包含来自 光照(Lighting) 窗口中 环境光照(Environment Lighting) > 源(Source) 下设置的光源的反射。在大多数情况下,此源是天空盒。

如果像素位于两个盒体内,并且距离两个体积的面都远于“混合距离”值:

  • 如果反射探针的 Importance 属性相同,则 Unity 会以相等的权重混合来自探针的反射。

  • 如果其中一个探针的 Importance 属性较高,则 Unity 仅应用来自该探针的反射。

URP 中的反射
反射问题排查