Skip to content

Commit a702209

Browse files
authored
[BUG FIX] Support attaching RayTracer camera sensor. (#2266)
1 parent fdb0447 commit a702209

File tree

6 files changed

+280
-132
lines changed

6 files changed

+280
-132
lines changed

examples/sensors/camera_as_sensor.py

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,9 @@
4141
if ENABLE_RAYTRACER:
4242
renderer = gs.renderers.RayTracer(
4343
env_surface=gs.surfaces.Emission(
44-
emissive_texture=gs.textures.ColorTexture(color=(0.2, 0.3, 0.5)),
44+
emissive_texture=gs.textures.ColorTexture(
45+
color=(0.2, 0.3, 0.5),
46+
),
4547
),
4648
env_radius=20.0,
4749
)
@@ -50,28 +52,36 @@
5052
renderer = gs.renderers.Rasterizer()
5153

5254
scene = gs.Scene(
53-
rigid_options=gs.options.RigidOptions(
54-
enable_collision=True,
55-
gravity=(0, 0, -9.8),
56-
),
5755
renderer=renderer,
5856
show_viewer=False,
5957
)
6058

6159
########################## entities ##########################
6260
plane = scene.add_entity(
6361
morph=gs.morphs.Plane(),
64-
surface=gs.surfaces.Rough(color=(0.4, 0.4, 0.4)),
62+
surface=gs.surfaces.Rough(
63+
color=(0.4, 0.4, 0.4),
64+
),
6565
)
6666

6767
sphere = scene.add_entity(
68-
morph=gs.morphs.Sphere(pos=(0.0, 0.0, 2.0), radius=0.5),
69-
surface=gs.surfaces.Smooth(color=(1.0, 0.5, 0.5)),
68+
morph=gs.morphs.Sphere(
69+
radius=0.5,
70+
pos=(0.0, 0.0, 2.0),
71+
),
72+
surface=gs.surfaces.Smooth(
73+
color=(1.0, 0.5, 0.5),
74+
),
7075
)
7176

7277
box = scene.add_entity(
73-
morph=gs.morphs.Box(pos=(1.0, 1.0, 1.0), size=(0.3, 0.3, 0.3)),
74-
surface=gs.surfaces.Rough(color=(0.5, 1.0, 0.5)),
78+
morph=gs.morphs.Box(
79+
size=(0.3, 0.3, 0.3),
80+
pos=(1.0, 1.0, 1.0),
81+
),
82+
surface=gs.surfaces.Rough(
83+
color=(0.5, 1.0, 0.5),
84+
),
7585
)
7686

7787
########################## Camera Configurations ##########################
@@ -129,9 +139,9 @@
129139

130140
# Create camera configurations for all backends
131141
backends = [
132-
("raster", RasterizerCameraOptions, True), # Always enabled
133-
("raytrace", RaytracerCameraOptions, ENABLE_RAYTRACER),
134-
("batch", BatchRendererCameraOptions, ENABLE_MADRONA),
142+
("rasterizer", RasterizerCameraOptions, True), # Always enabled
143+
("raytracer", RaytracerCameraOptions, ENABLE_RAYTRACER),
144+
("batch_render", BatchRendererCameraOptions, ENABLE_MADRONA),
135145
]
136146

137147
backend_configs = {}
@@ -168,9 +178,9 @@
168178
options_kwargs["offset_T"] = attachment["offset_T"]
169179

170180
# Add backend-specific parameters
171-
if backend_name == "raster":
181+
if options_class is RasterizerCameraOptions:
172182
options_kwargs.update({"near": CAMERA_COMMON_KWARGS["near"], "far": CAMERA_COMMON_KWARGS["far"]})
173-
elif backend_name == "raytrace":
183+
elif options_class is RaytracerCameraOptions:
174184
options_kwargs.update(
175185
{
176186
"model": "pinhole",
@@ -187,14 +197,14 @@
187197
"env_radius": 20.0,
188198
}
189199
)
190-
elif backend_name == "batch":
200+
elif options_class is BatchRendererCameraOptions:
191201
options_kwargs.update({"use_rasterizer": True})
192202
if camera_config["lights"]:
193203
adjusted_lights = [{**light, "directional": False} for light in camera_config["lights"]]
194204
options_kwargs["lights"] = adjusted_lights
195205

196206
# Adjust lights for raytracer (different intensity/color)
197-
if backend_name == "raytrace" and camera_config["lights"]:
207+
if options_class is RaytracerCameraOptions and camera_config["lights"]:
198208
adjusted_lights = [
199209
{**light, "color": (10.0, 10.0, 10.0), "intensity": 1.0} for light in camera_config["lights"]
200210
]

0 commit comments

Comments
 (0)