光栅化设置

这些选项位于“可视化”>“光栅化设置”下,在评估阴影、几何体灯光源、反射和折射时可将它们与 OpenGL 和 Vulkan 光栅器一起使用。启用或禁用这些选项,以及消隐、深度过程和透明模式。

烘焙阴影

激活/取消激活视口中顶点和纹理上的预计算阴影,并烘焙来自环境的阴影。

烘焙阴影

实时环境阴影

视频字幕:我们还引入了两种使用光线跟踪计算实时阴影的新方法:“光线跟踪环境光遮挡”和“光线跟踪环境阴影”。这些方法比现有的屏幕空间环境光遮挡更精确、更逼真。光线跟踪环境光遮挡的功能与 SSAO 类似,因为它计算所有方向上的阴影。另一方面,光线跟踪环境阴影会考虑来自环境贴图的照明以创建较亮聚光灯投射的柔和阴影。

单击“实时环境阴影”右侧的 设置框 可访问“实时环境阴影设置”,用于启用/禁用实时环境阴影以及选择使用光线跟踪计算漫反射照明的实时环境阴影的方法。

实时环境阴影设置

使用“实时环境阴影设置”来确定使用的阴影类型,以及是否将烘焙阴影用于阴影材质、阴影的距离、阴影强度和每像素光线数。有关这些设置的详细信息,请参见 实时环境阴影

  • 启用实时环境阴影 - 激活/取消激活视口中的实时环境阴影,这可能会对性能产生很大影响。选中此选项后,“光栅化”>“实时环境阴影”菜单选项将处于启用状态。

    “实时环境阴影”菜单选项已启用

  • 类型 - 从“禁用”、“屏幕空间环境光遮挡”、“光线跟踪环境光遮挡”和“光线跟踪环境阴影”中选择。

    • 禁用 - 烘焙、SSAO 和光线跟踪环境阴影都处于禁用状态,不显示在视口中。

      “实时环境阴影”开启 “实时环境阴影”关闭
      “实时环境阴影”开启 “实时环境阴影”关闭

    • 屏幕空间环境光遮挡 - 在视口中使用屏幕空间单位激活环境光遮挡计算。这可以改善远处的阴影细节,并使材质看起来更引人注目。但是,这可能会降低性能,同时也需要更多内存。使用以下选项更改当前的 SSAO 设置:

      “屏幕空间环境光遮挡”设置

    • 光线跟踪环境光遮挡 - 仅适用于 Vulkan,因为需要使用与光线跟踪兼容的显卡。使用 SSAO 的此替代方法可以更精确地实时计算漫反射照明的阴影区域。此项将计算所有方向的阴影,从而使场景图示更加逼真,同时解决了 SSAO 的一些限制。有关详细信息,请参见光线跟踪环境光遮挡部分。

    • 光线跟踪环境阴影 - 仅适用于 Vulkan,因为需要使用与光线跟踪兼容的显卡。它使用光线跟踪并计算漫反射照明的近似阴影,同时考虑来自环境贴图的照明,以便更亮的区域更具重要性,从而产生更清晰但柔和的阴影。有关详细信息,请参见光线跟踪环境阴影部分。

  • 采样质量 - 设置屏幕空间环境光遮挡计算的采样质量。

  • 半径 - 设置屏幕空间环境光遮挡效果的半径(以场景空间单位表示)。超出此距离的几何体不会遮挡照明。

    重要信息:

    由于这是屏幕空间效果,因此存在一些限制。例如,如果半径太大,将无法发挥效果。

  • 截止角 - 防止因深度通道不准确而在平坦曲面上出现自身阴影。使用截止角以免在平滑曲率的曲面上产生阴影。如果曲面平面与采样点矢量之间的角度小于截止角,即在截止角范围之外,则将忽略相应的采样。

  • 强度 - 设置遮挡的暗度。该值越高,阴影越暗。

  • 模糊量 - 设置应用于遮挡的模糊程度。值越高,模糊过程越多,即可产生更柔和的输出,但会增加执行时间。

    SSAO 提供了一种有效、实时的烘焙环境光遮挡 (AO) 近似方法。虽然 SSAO 永远不如预计算的 AO,甚至不如烘焙照明和阴影,但 SSAO 适合快速预览。

  • 边保留 - 设置模糊过滤器过程的边保留因子。它基于相邻像素深度的连续性。

    • 值为 0 将忽略深度通道中的任何不连续性并过滤所有内容。
    • 值为 1 时将仅过滤深度完全相同的像素。

光线跟踪环境光遮挡

仅适用于 Vulkan,因为需要使用与光线跟踪兼容的显卡。激活环境光遮挡计算,又称柔和全局照明。它使用光线跟踪计算所有方向的实时阴影,从而更精确地实时计算漫反射照明的阴影区域,例如缝隙和角落中的阴影。它使场景图示更加逼真,同时解决了 SSAO 的一些限制。

目前,存在一些限制:

  • 不支持细分。
  • 不支持蒙皮;因此,将使用没有骨骼变换的网格。
提示:

在数据准备期间作为预处理执行此计算。由于计算得出的环境光遮挡结果在几何体的顶点上烘焙,因此计算的阴影的平滑度取决于多边形网格分辨率。因此,VRED 提供多种方式在软件的其他部分提高低质量模型的质量,例如,细分和预定义质量预设。

使用“实时环境阴影设置”中的以下选项来更改当前光线跟踪环境光遮挡:

光线跟踪环境光遮挡的实时环境阴影设置

  • 距离 - 设置几何体被视为遮挡物的最大距离。
  • 强度 - 设置阴影强度。该值越高,阴影越暗。
  • 每像素光线数 - 设置每像素要跟踪的光线数。

光线跟踪环境阴影

仅适用于 Vulkan,因为需要使用与光线跟踪兼容的显卡。激活并计算漫反射照明的实时阴影,同时考虑来自环境贴图的照明以创建较亮聚光灯投射的柔和阴影。此项用来替代 SSAO

遮挡光

例如,该场景使用 HDR 文件环境节点的计算结果进行照亮;它可以在场景中没有任何其他光源的情况下工作。在计算时隐藏的所有对象都将变暗。

  • 距离 - 设置几何体被视为遮挡物的最大距离。
  • 强度 - 设置阴影强度。该值越高,阴影越暗。
  • 每像素光线数 - 设置每像素要跟踪的光线数。

实时光源阴影

激活/取消激活随投射阴影的对象一起移动的阴影。使用它们在移动的对象上投射阴影。实时阴影可能会对性能造成很大影响,因此我们建议谨慎使用它们。实时阴影贴图可以与增量灯光、区域灯光和对象灯光一起使用。

几何体灯光源

仅在 OpenGL 渲染模式下且选择了“实时光源阴影”时可用。将自发光几何体视为光源。

光线跟踪反射

视频字幕:VRED 现在可以将光线跟踪反射覆盖到光栅化图像上。只需转到“文件”菜单并在“可视化”下选择“光线跟踪反射”,您将在相应对象(例如本示例中的门)上看到反射。

仅适用于 Vulkan,因为需要使用与光线跟踪兼容的显卡。透明材质类型(例如塑料、磨砂金属、车漆、碳纤维、MDL 及玻璃)都支持光线跟踪反射。光线跟踪反射还支持蒙皮网格、DLSS 光线重建和透明/多材质反射蒙皮网格。

Vulkan 中的光线跟踪支持支持计算逼真的反射,从而显著提高视口中实时场景的视觉质量。这样一来,您的场景可以更接近使用我们的 CPU 和 GPU 光线跟踪器可实现的结果。

“光线跟踪反射”禁用 “光线跟踪反射”启用
“光线跟踪反射”禁用 “光线跟踪反射”启用

使用以下 Python 函数可在 Vulkan 渲染模式下实现逼真的反射:

  • vrRenderSettingsService.getSettings().setUseRaytracedReflections(True)
  • vrRenderSettingsService.getSettings().getUseRaytracedReflections()

以下是光线跟踪反射中支持且可见的特定内容:

  • 玻璃和透明材质上的反射
  • 多层和分层材质
  • 蒙皮网格
  • 不透明材质
  • 精确反射区域灯光
  • Nvidia 实时降噪器或 DLSS-RR(在启用 DLSS 的情况下)

限制:目前,由于这是实时实现,因此与 VRED 的完整 CPU 和 GPU 光线跟踪相比,存在一些限制:

  • 线和线框材质 - 从不透明材质中排除这些材质。

  • 不带光线跟踪的区域灯光 - 它们生成近似的灯光遮挡。

  • 玻璃和透明材质上的反射 - 仅透明对象的正面层可以具有光线跟踪反射。

  • 反射 - 仅针对材质的最顶层(如透明涂层,如果存在)或基础层以及最前面的透明对象采样计算反射。仅计算一次反射反弹(每像素一条光线),因此只有直接反射是可见的。但是,不透明和透明对象的光线跟踪反射是独立的步骤。这意味着一个像素可以发射两条光线,一条用于不透明过程,另一条用于透明过程。

    例如,对于具有不透明材质(如不透明塑料)且没有透明涂层的对象,将进行光泽反射光线跟踪。如果材质包含透明涂层,则只会对透明涂层反射进行光线跟踪。基础层(本例中的实际塑料)将使用法线环境采样。

    再举一个例子,如果一个透明对象(如平面)位于一个不透明对象的前面,那么两个对象都会产生光线跟踪反射,因为它们是在不同的过程上计算的。如果一个透明对象位于另一个透明对象的前面,则仅对最接近摄影机的采样进行光线跟踪,而后面的采样将回退到环境采样。

  • 细分(置换贴图)- 尚不支持,因此,将使用未细分版本的网格。

    当反射中可以看到具有置换的网格时,将显示“平面”版本。当光栅化和光线跟踪中的信息不匹配时,这种情况可能会产生瑕疵。

    例如,当为具有置换的网格计算光线跟踪环境光遮挡时,由于光线是从置换网格生成的,因此光线会与非置换网格发生碰撞。这对于凹面几何体或向内移动几何体的置换更为明显,因为它们会产生自身阴影。自身阴影会出现在 Substance 材质上,这些材质使用高度值为 0.5 的置换贴图作为“无置换”。当高度值小于 0.5 时,这些曲面会出现缩进。解决方法是将 VRED Substance 材质中的置换偏移从 0.5 更改为 0.0。

单击 设置框 可访问“光线跟踪反射设置”。

光线跟踪反射设置

设置反射中可见的透明曲面的层数(从前到后)。指定数量后面的任何曲面在反射中将不可见。

  • 启用光线跟踪反射 - 仅适用于 Vulkan。启用光线跟踪反射。启用后,“光线跟踪反射”菜单选项显示为选中状态。

    “光线跟踪反射”菜单已选中

  • “透明层”用于设置反射中可见的透明曲面的层数(从前到后)。指定数量后面的任何曲面在反射中将不可见。

  • “反射体积”用于启用或禁用体积光线跟踪反射。由于这些可能会对性能产生轻微影响,因此可以禁用它们。

    注意:

    自 2026.1 起,Vulkan 支持体积光线跟踪反射。

    体积光线跟踪反射

    提示:

    播放动画体积反射时,可启用 DLSS 以更正反射播放中的任何滞后。

屏幕空间折射

视频字幕:除了光线跟踪外,另一个视觉增强功能是屏幕空间折射。Vulkan 中的这种视觉效果通过实时模拟光线折射,提供了更逼真的半透明材质可视化,包括表面粗糙度。

仅适用于 Vulkan。通过实时模拟灯光折射来增加玻璃、透射 MDL 和 MaterialX 材质的真实感,包括表面粗糙度。此功能仅限于最靠近摄影机的透明层,其后方的任何其他透明材质都将被忽略。

提示:

也可以通过“材质编辑器”分别启用/禁用每种材质的折射。

OpenGL Vulkan
使用 OpenGL 的示例 将 Vulkan 与屏幕空间折射结合使用的示例

限制:目前,由于这是实时实现,因此存在一些限制:

  • 透明度 - 此功能仅限于最靠近摄影机的透明层,其后方的任何其他透明材质都将被忽略。
  • DLSS-RR - 使用“屏幕空间折射”时,这会产生瑕疵。要避免出现此情况,请在使用“屏幕空间折射”时使用默认降噪器。在这种情况下,质量会降低,因为默认降噪器生成的结果往往会更差,并会引入更多滞后。
  • DLSS - 如果在使用“屏幕空间折射”时启用 DLSS,则最初渲染较低分辨率,使用默认降噪器降噪,然后通过 DLSS 放大。因此,与未使用 DLSS 的屏幕空间折射相比,屏幕空间折射 + DLSS 生成的结果质量往往更低。

在 Vulkan 渲染模式下尝试以下 Python 函数:

  • vrRenderSettingsService.getSettings().setUseScreenSpaceRefractions(True)
  • vrRenderSettingsService.getSettings().getUseScreenSpaceRefractions()

背面消隐

激活/取消激活背面消隐,该功能通过检查多边形是否背对摄影机来确定是否应绘制多边形。激活“背面消隐”后,将仅渲染法线指向摄影机的面,而不绘制不可见的多边形,以此优化性能。

重要信息:

在 OpenGL 中,如果摄影机的景深处于启用状态,则在视口中通过消隐背面所做的选择会影响自动聚焦。当通过消隐的几何体查看时,这会将焦点设置到几何体后面的对象。

遮挡消隐

避免渲染被其他对象隐藏的对象,从而通过仅渲染可见的几何体来提高性能。渲染引擎在渲染时排除其他对象所隐藏的多边形/面片。

默认情况下启用此选项;如需禁用,请取消选中此选项。

仅深度过程

仅在 OpenGL 渲染模式下可用。仅使用深度值渲染一次场景。它可用于优化复杂着色器。

透明模式

渲染场景,应用以下透明模式之一:“对象排序”和“深度剥离”。在 OpenGL 中,“对象排序”是默认设置。Vulkan 始终使用“深度剥离”。选择“深度剥离”后,选择“透明度设置”以确定要剥的层数。

视频字幕:为了在 OpenGL 中获得自交透明对象的像素校正结果,我们还添加了“对象排序”,即所谓的“深度剥离”。这也可以解决透明材质排序错误的问题。使用滑块调整应计算的层数。

对象排序

仅适用于 OpenGL。如果您认为性能比正确的结果更重要,或者没有相交的透明对象或与自身相交的透明对象,请选择“对象排序”。它会启用对象排序透明度,场景中的每个对象会从后到前一次渲染一个。自遮挡透明几何体可能无法精确渲染。可以通过“材质编辑器”>“公用”选项卡中的排序键选项按材质覆盖排序。

深度剥离

如果场景中有相交的透明对象或与自身相交的透明对象,请使用“深度剥离”。

“对象排序”和“深度剥离”

深度剥离用于与顺序无关的透明度以及没有排序的透明曲面的每像素校正混合。以像素级精确度渲染具有复杂相交透明对象(例如车头灯)的图像。

不使用深度剥离 使用深度剥离
不使用深度剥离 使用深度剥离

深度剥离如何工作?

深度剥离透明度会通过多个过程渲染每像素透明度。在每个过程中,将剥离下一个透明层,并与上一层混合。VRED 从后到前对层进行剥离,以获得正确的结果。因此,如果有三层玻璃(例如车头灯),但“深度剥离”仅设置为两层,则仅会看到距摄影机最远的两层。不会渲染所有剩余层。

但是,深度剥离带来的优势会降低性能。尝试选择要剥离的最小层数以完全捕获场景。对于许多场景,通过启用遮挡消隐(“可视化”>“光栅化设置”>“遮挡消隐”)可以显著提高性能。

我的透明材质在哪里?

由于环境的阴影平面是透明材质,因此它也由深度过程渲染。因此,如果启用“深度剥离”,但设置为单个层,则无论何时从将阴影平面放置在它们后面的某个角度查看,场景中的所有透明材质都会消失。如果遇到此问题,请将层数设置为较大的值,例如 8。

何时使用深度剥离

当排序无法生成正确的透明度时,如果在以下情况下,建议使用“深度剥离”。

  • 当透明几何体自遮挡时
  • 当两个或多个透明对象相交时,其中一个对象的某些部分位于另一个对象的前面,而其他部分位于另一个对象的后面

深度剥离设置

“透明度设置”对话框

要设置剥离的层数,请选择“可视化”>“光栅化设置”>“透明模式”>“深度剥离”框 以访问“深度剥离设置”对话框。默认的过程数(即,要剥离的层数)为 8,从后到前执行剥离。输入值或使用滑块设置 0 到 32 之间的值。请注意,在 OpenGL 中,如果需要,可以在滑块字段中手动输入超出此范围的值。