配置渲染设置#

Isaac Lab 提供了 3 种预设渲染模式:性能、平衡和质量。您可以通过命令行参数或脚本内选择模式,并根据需要自定义设置。调整和微调渲染以实现工作流的理想平衡。

选择渲染模式#

有两种方法可以选择渲染模式。

  1. 使用 RenderCfg 中的 rendering_mode 输入类参数

    # for an example of how this can be used, checkout the tutorial script
    # scripts/tutorials/00_sim/set_rendering_mode.py
    render_cfg = sim_utils.RenderCfg(rendering_mode="performance")
    
  2. 使用 --rendering_mode 命令行参数,不传递 rendering_modeRenderCfg ,因为 RenderCfg 优先。

    ./isaaclab.sh -p scripts/tutorials/00_sim/set_rendering_mode.py --rendering_mode {performance/balanced/quality}
    
    # in the tutorial script example, remove the rendering_mode passed to RenderCfg
    render_cfg = sim_utils.RenderCfg()
    

注意, rendering_mode 默认为 balanced 。但是在启动器参数 --enable_cameras 未设置的情况下,则不应用默认的 rendering_mode ,而是使用默认的工具包渲染设置。

示例来自 set_rendering_mode.py 脚本。为了帮助评估渲染,示例场景包括一些反射、透明度、直接和环境光照以及几种材质类型。

  • 质量模式

    质量渲染模式示例
  • 平衡模式

    平衡渲染模式示例
  • 性能模式

    性能渲染模式示例

覆盖特定的渲染设置#

预设渲染设置可以通过 RenderCfg 类进行覆盖。

有两种方法可以提供覆盖预设的设置。

  1. RenderCfg 支持通过用户友好的设置名称覆盖特定的设置,这些设置映射到底层的 RTX 设置。例如:

    render_cfg = sim_utils.RenderCfg(
       rendering_mode="performance",
       # user friendly setting overwrites
       enable_translucency=True, # defaults to False in performance mode
       enable_reflections=True, # defaults to False in performance mode
       dlss_mode="3", # defaults to 1 in performance mode
    )
    

    用户友好的设置列表。

    enable_translucency

    布尔值。启用透射光,用于玻璃等反射性透明表面,以牺牲一些性能。

    enable_reflections

    布尔值。启用反射以牺牲一些性能。

    enable_global_illumination

    布尔值。启用漫反射全局照明以牺牲一些性能。

    antialiasing_mode

    字面值[“Off”, “FXAA”, “DLSS”, “TAA”, “DLAA”]。

    DLSS: 通过使用 AI 从较低分辨率输入生成更高分辨率帧来提高性能。DLSS 采样多个较低分辨率图像,并使用运动数据和先前帧的反馈来重建原生质量图像。DLAA: 提供基于 AI 的抗锯齿技术,提供更高的图像质量。DLAA 使用为 DLSS 开发的超分辨率技术,重建原生分辨率图像以最大化图像质量。

    enable_dlssg

    布尔值。启用 DLSS-G 的使用。DLSS 帧生成通过使用 AI 生成更多帧来提高性能。这个功能需要 Ada Lovelace 架构 GPU,并且由于额外的线程相关活动可能会影响性能。

    enable_dl_denoiser

    布尔值。启用 DL 降噪器的使用,可以改善渲染的质量,但会牺牲一些性能。

    dlss_mode

    字面值[0, 1, 2, 3]。对于 DLSS 抗锯齿,选择性能/质量的折衷模式。有效值为 0(性能)、1(平衡)、2(质量)或 3(自动)。

    enable_direct_lighting

    布尔值。启用来自灯光的直接光照贡献。

    samples_per_pixel

    整数。定义每像素的直接光照采样。较高的值增加了直接光照质量,但会牺牲性能。

    enable_shadows

    布尔值。启用阴影以牺牲一些性能。当禁用时,灯光不会投射阴影。

    enable_ambient_occlusion

    布尔值。启用环境光遮蔽以牺牲一些性能。

  2. 对于更多控制, RenderCfg 允许通过使用 carb_settings 参数覆盖任何 RTX 设置。

    RTX 设置的示例可以在仓库中找到,在位于 apps/rendering_modes 的渲染模式预设文件中。

    此外,RTX 文档可以在这里找到 - https://docs.omniverse.nvidia.com/materials-and-rendering/latest/rtx-renderer.html

    carb_settings 的示例用法。

    render_cfg = sim_utils.RenderCfg(
       rendering_mode="quality",
       # carb setting overwrites
       carb_settings={
          "rtx.translucency.enabled": False,
          "rtx.reflections.enabled": False,
          "rtx.domeLight.upperLowerStrategy": 3,
       }
    )
    

当前限制#

出于性能原因,我们默认使用 DLSS 进行去噪,通常可提供更好的性能。这可能会导致质量较低的渲染,尤其在较低分辨率下可能会特别明显。因此,我们建议将每个 tile 或相机的分辨率设置至少为 100 x 100。对于较低分辨率的渲染,我们建议将 RenderCfg 中的 antialiasing_mode 属性设置为 DLAA ,并可能启用 enable_dl_denoiser 。这两个设置应有助于提高渲染质量,但也会牺牲一些性能。还可以在 RenderCfg 中指定其他渲染参数。