Conversation
|
run-ci |
|
There was a problem hiding this comment.
Isaac Lab Review Bot
The shared background_mode API is wired consistently across Kit, Newton GL, and Newton RTX, but compatibility with post-construction background_color=None assignments is broken because mode normalization occurs only during initialization.
- Design and architecture: Centralizing solid-versus-sky selection in
VisualizerCfgand translating it at each backend boundary fits the existing visualizer layering. The Newton RTX dome configuration and single-light rig are coherent with that design. - API: The additive
Literal["solid", "sky"]field is documented and validated. However, the stated backward-compatiblebackground_color=Noneshortcut is incomplete: assigningNoneafter config construction no longer selects the native sky, unlike the previous consumer-side behavior. - Implementation: Kit, Newton GL, and Newton RTX consistently branch on
background_mode, but their solid-background paths assumebackground_colorremains non-null after__post_init__. A later assignment toNonecauses Newton GL's assertion to fail and Kit to unpackNone; the effective mode must account forbackground_color is Noneat consumption time or maintain the invariant on assignment.
Minor fixes needed. Posted 1 actionable finding inline.
Automated review; human maintainers own approval decisions.
|
run-ci |
There was a problem hiding this comment.
Thanks for working on sky support across the visualizers. I think we can simplify the configuration by building on the environment that tasks already define.
My main concern is the experience for a task author: once a scene has an HDR dome configured, I would expect both Kit and Newton RTX to use it automatically for lighting and the visible background, without needing another mode or a repeated HDR path.
For example, the shared velocity scene already defines /World/skyLight, including kloofendal_43d_clear_puresky_4k.hdr and intensity 750.0. If a user changes it:
env_cfg.scene.sky_light.spawn.texture_file = "evening.hdr"
env_cfg.scene.sky_light.spawn.intensity = 1000.0I would expect either KitVisualizerCfg() or NewtonRTXVisualizerCfg() to render that environment. With the current implementation, Newton RTX creates a separate dome from its visualizer settings, defaulting to blue_sky.hdr and intensity 500.0, so users would need to configure the same environment in two places.
Could we adjust the approach along these lines?
- Have Newton RTX consume the scene dome's authored texture, intensity, and transform. Recreating the dome in the viewer's separate stage is fine; sourcing those values from the scene would keep configuration in one place.
- Keep
background_coloras the optional solid-color override and drop the newbackground_modefield. This would avoid having two settings that select the background and need to stay consistent. - Apply no background override by default, so the configured scene HDR is visible automatically. An explicitly supplied RGB color would change only the visible background while preserving scene lighting. This also means revisiting the existing default solid RGB and documenting that behavior change.
- Express any convenient sky/solid presets through the existing settings, while allowing a task's configured HDR to work without selecting a preset or repeating its dome configuration.
It would be helpful to cover this with regression tests: an HDR configured only on the scene should be consumed by both Kit and Newton RTX with default visualizer configs, and an explicit solid-color override should preserve the lighting. We should also guard against reintroducing the duplicate selector and independently configured default dome. Newton GL's procedural sky limitation can be documented separately.
I'd suggest focusing this change on connecting scene lighting to Newton RTX, with new HDR assets and default lighting-rig changes considered separately. If there are ViewerRTX constraints that make reusing the scene dome difficult, it would be helpful to discuss those here.
|
Thanks, this is now reworked around the scene configuration as suggested.
The regression coverage exercises both native-HDR and solid-background cases and verifies that no second distant light is added. I also validated this with a live headless ANYmal-D Newton RTX rollout using only the velocity scene's existing Kloofendal dome. |
|
run-ci |
Description
Makes the scene-authored dome light the single source of truth for the visible sky and environment lighting across Kit and Newton RTX.
rtx_environment="default"mirrors authored sceneDomeLightproperties and the composed transform into ViewerRTX's private stage.VisualizerCfg.background_colorchanges only the visible background and preserves dome lighting and reflections."studio"and"none"environments remain unchanged.This keeps task authoring in the existing
DomeLightCfg, for example:The implementation copies authored dome attributes generically, resolves remote texture assets for the private OVRTX stage, and preserves the dome's composed transform and visibility. It deliberately does not add new sky assets or change task lighting rigs.
Type of change
Release backport
developValidation
uv run --frozen isaaclab -f: passeduv run --frozen python tools/changelog/cli.py check develop: passeduv run --isolated --extra dev -- make -C docs current-docs: passed without warningsChecklist
pre-commitchecks withuv run isaaclab -fsource/<pkg>/changelog.d/for every touched packageCONTRIBUTORS.md