Skip to content

Commit 0a4744a

Browse files
Record the root cause of the inert Isaac RTX shadow flag
Name the retired RaytracedLighting pipeline as the setting's missing consumer, note that per-light UsdLux ShadowAPI is ignored for the same reason, and point at the shadow-free options that do work.
1 parent b60fe4b commit 0a4744a

2 files changed

Lines changed: 25 additions & 13 deletions

File tree

source/isaaclab_physx/changelog.d/mataylor-isaac-rtx-enable-shadows-no-op.rst

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@ Fixed
22
^^^^^
33

44
* Fixed :attr:`~isaaclab_physx.renderers.IsaacRtxRendererGlobalSettingsCfg.enable_shadows`
5-
documenting itself as a working shadow switch. It writes ``/rtx/shadows/enabled``, which the RTX
6-
version shipped by Isaac Sim 6.0 registers but no render mode reads, so setting it to ``False``
7-
leaves every camera output unchanged. The docstring now records the limitation and points at
8-
:attr:`~isaaclab_ov.renderers.OVRTXRendererCfg.enable_shadows`, which does take effect.
5+
documenting itself as a working shadow switch. It writes ``/rtx/shadows/enabled``, the shadow
6+
switch of the ``RaytracedLighting`` pipeline, which the RTX version shipped by Isaac Sim 6.0 no
7+
longer offers; the render modes that remain do not read it, so setting the field to ``False``
8+
leaves every camera output byte-identical. The docstring now records the limitation and points at
9+
the ``albedo`` data type, ambient-only lighting, and
10+
:attr:`~isaaclab_ov.renderers.OVRTXRendererCfg.enable_shadows` as the shadow-free options that do
11+
work.

source/isaaclab_physx/isaaclab_physx/renderers/isaac_rtx_renderer_cfg.py

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,24 @@ class IsaacRtxRendererGlobalSettingsCfg:
5959
6060
.. warning::
6161
62-
This has no effect on the rendered image with the RTX version shipped by Isaac Sim 6.0.
63-
It writes ``/rtx/shadows/enabled``, which RTX registers but no render mode reads: the
64-
path-traced modes always cast shadows, and RTX Minimal exposes no shadow switch at all.
65-
Setting this to ``False`` leaves every camera output unchanged, so shadows cannot
66-
currently be turned off on this backend.
67-
68-
:attr:`~isaaclab_ov.renderers.OVRTXRendererCfg.enable_shadows` does work, because the
69-
``ovrtx`` runtime carries a newer RTX whose Minimal mode has an
70-
``omni:rtx:minimal:castShadows`` switch.
62+
This has no effect on the rendered image with the RTX version shipped by Isaac Sim 6.0:
63+
setting it to ``False`` leaves every camera output byte-identical.
64+
65+
It writes ``/rtx/shadows/enabled``, the shadow switch of the ``RaytracedLighting``
66+
pipeline. That pipeline is no longer selectable -- requesting it reverts the render mode
67+
to ``RealTimePathTracing`` -- and none of the three that remain read the setting:
68+
``RealTimePathTracing`` and ``PathTracing`` always cast shadows, and ``Minimal`` uses
69+
``omni:rtx:minimal:castShadows``, which this RTX version does not define.
70+
71+
Nothing above the renderer misbehaves, which is why this is easy to miss: the setting is
72+
registered, mapped to ``OmniRtxDebugSettingsAPI_1.omni:rtx:shadows:enabled``, and reads
73+
back the assigned value. Only its consumer is gone. Per-light ``UsdLux`` ``ShadowAPI``
74+
(``inputs:shadow:enable``) is ignored for the same reason.
75+
76+
For a shadow-free output today, request the ``albedo`` data type, which is unlit, or light
77+
the scene with ambient only (:attr:`ambient_light_intensity`) so nothing casts a shadow.
78+
:attr:`~isaaclab_ov.renderers.OVRTXRendererCfg.enable_shadows` also works, because the
79+
``ovrtx`` runtime carries a newer RTX whose Minimal mode defines ``castShadows``.
7180
"""
7281

7382
enable_ambient_occlusion: bool | None = None

0 commit comments

Comments
 (0)