选择与配置渲染器#
渲染器生成相机传感器观测,可视化器则为人提供交互式视图。应根据策略或数据管线需要的图像选择渲染器,再只调整影响该工作流的选项。
选择渲染器#
对于提供渲染器预设的任务,启动时选择兼容的物理与渲染器组合。使用 --task <task-name> --help 查看任务实际支持的预设;可用渲染器因任务而异。
渲染器 |
适用情况 |
取舍 |
典型命令 |
|---|---|---|---|
Newton Warp |
Newton 训练需要尽量低的显存占用和较高的相机吞吐量。 |
轻量光栅化;输出种类较少,不提供运动向量或完整的 RTX 材质光传输。 |
|
OVRTX |
需要可扩展、不依赖 Kit 的 RTX 渲染及更高的视觉保真度。 |
比 Newton Warp 占用更多显存。如果吞吐量比照片级真实感更重要,可选择 RTX Minimal 输出。 |
|
Isaac RTX(传统) |
工作流必须通过 Isaac Sim/Kit 运行,或需要其丰富的 RTX 与 Replicator 输出。 |
需要 Isaac Sim 和 PhysX;新工作不应将其作为默认的性能方案。 |
|
例如,使用低显存占用的 Newton 渲染器启动相机任务:
uv run isaaclab train --rl_library rsl_rl \
--task Isaac-Cartpole-Camera \
physics=newton_mjwarp renderer=newton_renderer presets=rgb
将同一受支持任务切换到保真度更高、不依赖 Kit 的 RTX 渲染器:
uv run isaaclab train --rl_library rsl_rl \
--task Isaac-Cartpole-Camera \
physics=newton_mjwarp renderer=ovrtx presets=rgb
输出可用性及运行时要求,以 渲染器细节 和 相机渲染器支持矩阵 为准。不要仅凭相机数量粗略比较渲染器;应测量实际准备训练的完整任务与观测配置。
自定义 Newton Warp#
Newton Warp 侧重吞吐量。先采用默认值,再只启用对策略有用的图像功能。阴影、纹理、环境光、遍历顺序和图块尺寸,由 NewtonWarpRendererCfg 控制。
如果任务配置了相机渲染器,可通过覆盖项启用方向光阴影:
uv run isaaclab train --rl_library rsl_rl \
--task Isaac-Cartpole-Camera \
physics=newton_mjwarp renderer=newton_renderer presets=rgb \
env.scene.tiled_camera.renderer_cfg.enable_shadows=true
在 Python 中定义相机时,可直接配置渲染器:
from isaaclab_newton.renderers import NewtonWarpRendererCfg
renderer_cfg = NewtonWarpRendererCfg(
enable_textures=True,
enable_shadows=True,
render_order="tiled",
)
只有对代表性场景进行性能分析后,才调整 render_order 和图块尺寸。它们是实现层面的吞吐量控制项,并非视觉质量设置。
自定义 OVRTX#
OVRTX 无需 Isaac Sim,即可提供 RTX Minimal 和照片级渲染路径。如果材质外观、反射、透明度或更丰富的 RTX 输出很重要,应使用常规 rgb 输出。对于只需要简化颜色的训练,则选择 simple_shading_* 预设:
uv run isaaclab train --rl_library rsl_rl \
--task Isaac-Cartpole-Camera \
physics=newton_mjwarp renderer=ovrtx \
presets=simple_shading_diffuse_mdl
在 RTX Minimal 模式下, enable_shadows 控制方向光阴影射线。它能改善视觉保真度,但会增加渲染耗时。路径追踪的 OVRTX 输出始终计算阴影,因此该选项不影响常规 rgb 或其他 AOV。
from isaaclab_ov.renderers import OVRTXRendererCfg
renderer_cfg = OVRTXRendererCfg(enable_shadows=True)
自定义 Isaac RTX#
Isaac RTX 仍可用于 Isaac Sim 和 PhysX 工作流。下列设置仅适用于该传统渲染器;新的 Newton 和不依赖 Kit 的负载应使用 Newton Warp 或 OVRTX。
备注
请求某种 simple_shading_* 相机数据类型、且未请求常规彩色输出时,会将该相机的渲染产品切换到 RTX Minimal 模式,具体着色级别由数据类型决定。切换按渲染产品分别进行,因此其他相机和 Kit 视口保留各自配置的渲染模式。RTX Minimal 只使用第一个 DistantLight prim,忽略 DomeLight prim,也可能使用已配置的环境光。如果同一渲染产品还请求 rgb 、 rgba 或 rgb_hdr ,则为保留彩色输出而继续使用配置的渲染模式; simple_shading_* 输出仍可用,但不会获得 RTX Minimal 的性能提升。
覆盖特定渲染设置#
通过 IsaacRtxRendererGlobalSettingsCfg ,可覆盖 RTX 渲染设置。
有两种方式提供设置,以覆盖默认值。
IsaacRtxRendererGlobalSettingsCfg支持使用易于理解的设置名称覆盖特定设置,并将其映射到底层 RTX 设置。例如:global_settings = IsaacRtxRendererGlobalSettingsCfg( # user-friendly setting overrides enable_translucency=True, # render glass / transmissive surfaces enable_reflections=True, # render reflections dlss_mode=3, # 0 (Performance), 1 (Balanced), 2 (Quality, the default), 3 (Auto) )
用户友好的设置列表。
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
布尔值。启用环境光遮蔽以牺牲一些性能。
如果需要更多控制,
IsaacRtxRendererGlobalSettingsCfg允许通过carb_settings参数覆盖任意 RTX 设置。完整的 NVIDIA RTX 渲染器文档见 https://docs.omniverse.nvidia.com/materials-and-rendering/latest/rtx-renderer.html 。
carb_settings的示例用法。global_settings = IsaacRtxRendererGlobalSettingsCfg( # raw carb setting overrides carb_settings={ "rtx.translucency.enabled": False, "rtx.reflections.enabled": False, "rtx.domeLight.upperLowerStrategy": 3, } )
当前限制#
出于性能考虑,默认使用 DLSS 降噪,通常能提供更好的性能,但渲染质量可能降低,低分辨率下尤其明显。因此,建议每个平铺图块或相机的分辨率至少为 100 x 100。使用更低分辨率时,建议将 IsaacRtxRendererGlobalSettingsCfg 的 antialiasing_mode 设为 DLAA,并视情况启用 enable_dl_denoiser。这两项设置有助于改善渲染质量,但会降低性能。其他渲染参数也可通过 IsaacRtxRendererGlobalSettingsCfg 设置。
如果平铺渲染出现重影或去遮挡等视觉伪影,可尝试调整 disocclusionScale 。该参数控制渲染器处理帧间新显露区域的力度:
global_settings = IsaacRtxRendererGlobalSettingsCfg(
carb_settings={
"/rtx/aovConverter/disocclusionScale": 10000,
}
)
备注
此参数通常不对外暴露,因为某些场景下可能产生副作用。只有其他质量设置无法解决伪影时,才将其作为最后手段。可将其调到很高的值,以减少去遮挡伪影。
在多个环境中渲染 UsdVol 三维高斯场景#
在 多个环境 中使用包含三维高斯粒子的 UsdVol 体积(例如从 3DGRUT 导出)时,必须进行以下设置,使渲染器使用正确的合成路径:
global_settings = IsaacRtxRendererGlobalSettingsCfg(
carb_settings={
"omni.rtx.nre.compositing.rendererHints": 3,
}
)
警告
多个环境各自持有一份场景副本,会增加设备内存用量;而且环境依次渲染,可能显著降低渲染速度。