配置渲染设置#
Isaac Lab 提供了 3 种预设渲染模式:性能、平衡和质量。您可以通过命令行参数或脚本内选择模式,并根据需要自定义设置。调整和微调渲染以实现工作流的理想平衡。
选择渲染模式#
有两种方法可以选择渲染模式。
使用
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")
使用
--rendering_mode
命令行参数,不传递rendering_mode
给RenderCfg
,因为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
类进行覆盖。
有两种方法可以提供覆盖预设的设置。
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
布尔值。启用环境光遮蔽以牺牲一些性能。
对于更多控制,
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
中指定其他渲染参数。