Document that Isaac RTX enable_shadows cannot disable shadows - #7461
Document that Isaac RTX enable_shadows cannot disable shadows#7461mataylor-nvidia wants to merge 2 commits into
Conversation
IsaacRtxRendererGlobalSettingsCfg.enable_shadows writes /rtx/shadows/enabled, which the RTX version shipped by Isaac Sim 6.0 registers but no render mode reads. Setting it to False leaves every camera output byte-identical, so the field reads as a working shadow switch while being inert. Record the limitation and point at the OVRTX equivalent, which does take effect.
There was a problem hiding this comment.
Isaac Lab Review Bot
The change documents that IsaacRtxRendererGlobalSettingsCfg.enable_shadows is ineffective with the RTX version shipped in Isaac Sim 6.0 and adds the corresponding isaaclab_physx changelog fragment.
- Design and architecture: The limitation is documented on the backend-specific global settings field where users encounter it. The OVRTX alternative is referenced without introducing runtime coupling between the renderer packages.
- API: The public API remains unchanged: the field retains its
bool | Nonetype,Nonedefault, name, and configuration semantics. The added documentation clarifies current backend behavior and identifies the working OVRTX counterpart. - Implementation: The warning and changelog consistently describe the affected setting and its
/rtx/shadows/enabledpath. The main non-blocking maintenance consideration is that the limitation is explicitly version-specific and should be revisited when Isaac Sim's RTX runtime is upgraded.
No blocking issues. No inline issue met the actionable-evidence threshold; the assessment above records the review feedback.
Automated review; human maintainers own approval decisions.
Greptile SummaryThis PR clarifies that
Confidence Score: 5/5The PR appears safe to merge because it only clarifies existing renderer behavior and adds a matching changelog entry. The changes are documentation-only and introduce no runtime, build, data, or security behavior changes requiring correction. Important Files Changed
Reviews (1): Last reviewed commit: "Document that Isaac RTX enable_shadows c..." | Re-trigger Greptile |
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.
Description
IsaacRtxRendererGlobalSettingsCfg.enable_shadowsreads as a working shadow switch. It is not one,and has not been since #5449. This documents the limitation and its cause.
Setting it to
Falseleaves every camera output byte-identical.Root cause
enable_shadowswrites/rtx/shadows/enabled— the shadow switch of theRaytracedLightingpipeline. Isaac Lab used to pin that render mode (see #310, a workaround for its casing), so the
flag worked when it was added. #5449 switched the default to
RealTimePathTracingfor determinism,and the flag became inert that day, silently.
RaytracedLightingis no longer selectable at all on Isaac Sim 6.0 — requesting it is rejected thesame way a nonsense token is:
/rtx/rendermodeRaytracedLightingRealTimePathTracing← rejectedBogusMode123RealTimePathTracing← rejectedPathTracing/Minimal/MinimalRendering/RealTimePathTracingNone of the three surviving pipelines reads the setting.
RealTimePathTracingandPathTracingalways cast shadows by design;
Minimalusesomni:rtx:minimal:castShadows, which Isaac Sim 6.0'sOmniRtxSettingsMinimalAPI_1does not define (it hasminimal:mode,minimal:constantColorandthe two
sceneDb:ambientLight*properties). Theovrtxruntime carries a newer RTX that doesdefine it, which is why
OVRTXRendererCfg.enable_shadowsworks.Measurements
Slab, 1.2 m pillar, sphere, distant light at 45 degrees, 640x480, unmodified
Camera/IsaacRtxRendererCfg, reading the color buffer.enable_shadows=Falsesettings.set("/rtx/shadows/enabled", False)--/rtx/shadows/enabled=falsertx.shadows.enabled = falsein the.kitfileUsdLuxShadowAPIinputs:shadow:enable=Falseomni:rtx:minimal:castShadows=False, incl. withOmniRtxSettingsMinimalAPI_1applied to the primEvery one reports success at the layer it touches — the carb setting reads back
False, and the USDattributes report
defined=True authored=True value=False. Nothing above the renderer misbehaves;only the consumer is missing.
Shadow-free options that do work today
albedodata type. It is unlit, so there is nothing to shadow.ambient_light_intensity), so no directional source casts.OVRTXRendererCfg(enable_shadows=False)in Minimal mode (Turn off OVRTX shadows by default #7454).There is no way to keep RTPT or Minimal lighting and drop the cast shadows on this backend. That
needs an Isaac Sim RTX uplift to the build that defines
castShadows.Note on test coverage
test_isaac_rtx_global_settingsdoes cover this field, but assertssettings.get("/rtx/shadows/enabled") is Trueagainst a fake settings object. It verifies that theconfig field writes the carb key, never that the key does anything, so it passed unchanged through
the regression. Catching this class of bug needs a pixel comparison; the rendering suite's
make_xfail_rendering_paramswould be the natural home, as a non-strict xfail that reportsXPASS (REVIEW XFAIL)when a future Isaac Sim honours the setting. Happy to add that here or as afollow-up.
Type of change
Checklist
pre-commitchecks with./isaaclab.sh --formatsource/<pkg>/changelog.d/for every touched packageCONTRIBUTORS.mdor my name already exists there