Skip to content

Commit 4318e3c

Browse files
committed
Restore semantic filter config in rtx path
1 parent 1e3f047 commit 4318e3c

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

source/isaaclab_physx/isaaclab_physx/renderers/isaac_rtx_renderer.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,16 @@
4242
SIMPLE_SHADING_MODE_SETTING = "/rtx/sdg/simpleShading/mode"
4343

4444

45+
def _camera_semantic_filter_predicate(semantic_filter: str | list[str]) -> str:
46+
"""Build the instance-mapping semantics predicate from :attr:`isaaclab.sensors.camera.CameraCfg.semantic_filter`.
47+
48+
Replicator's semantic/instance segmentation annotators consume this via the synthetic-data pipeline.
49+
"""
50+
if isinstance(semantic_filter, list):
51+
return ":*; ".join(semantic_filter) + ":*"
52+
return semantic_filter
53+
54+
4555
@dataclass
4656
class IsaacRtxRenderData:
4757
"""Render data for Isaac RTX renderer."""
@@ -71,6 +81,7 @@ def create_render_data(self, sensor: SensorBase) -> IsaacRtxRenderData:
7181
"""Create render product and annotators for the tiled camera.
7282
See :meth:`~isaaclab.renderers.base_renderer.BaseRenderer.create_render_data`."""
7383
import omni.replicator.core as rep
84+
from omni.syntheticdata import SyntheticData
7485
from pxr import UsdGeom
7586

7687
settings = get_settings_manager()
@@ -108,6 +119,11 @@ def create_render_data(self, sensor: SensorBase) -> IsaacRtxRenderData:
108119
)
109120
render_product_paths = [rp.path]
110121

122+
# Synthetic-data instance mapping filter for segmentation; before annotator attach.
123+
SyntheticData.Get().set_instance_mapping_semantic_filter(
124+
_camera_semantic_filter_predicate(sensor.cfg.semantic_filter)
125+
)
126+
111127
# Register simple shading if needed
112128
if any(data_type in SIMPLE_SHADING_MODES for data_type in sensor.cfg.data_types):
113129
rep.AnnotatorRegistry.register_annotator_from_aov(

0 commit comments

Comments
 (0)