Skip to content

Commit 472f828

Browse files
committed
Only add rasterizer camera if needed. Fix camera build logics.
1 parent 1b2ad53 commit 472f828

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

genesis/vis/camera.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -150,11 +150,10 @@ def build(self):
150150

151151
self._envs_offset = torch.as_tensor(self._visualizer._scene.envs_offset, dtype=gs.tc_float, device=gs.device)
152152

153-
self._batch_renderer = self._visualizer.batch_renderer
154153
self._rasterizer = self._visualizer.rasterizer
155-
self._raytracer = self._visualizer.raytracer
154+
self._raytracer = self._visualizer.raytracer if not self._debug else None
155+
self._batch_renderer = self._visualizer.batch_renderer if not self._debug else None
156156

157-
self._rasterizer.add_camera(self)
158157
if self._batch_renderer is not None:
159158
self._rgb_stacked = True
160159
self._other_stacked = True
@@ -168,6 +167,7 @@ def build(self):
168167
self._rgb_stacked = False
169168
self._other_stacked = False
170169
else:
170+
self._rasterizer.add_camera(self)
171171
self._rgb_stacked = self._visualizer._context.env_separate_rigid
172172
self._other_stacked = self._visualizer._context.env_separate_rigid
173173

@@ -396,11 +396,11 @@ def render(
396396
"""
397397
rgb_arr, depth_arr, seg_arr, seg_color_arr, seg_idxc_arr, normal_arr = None, None, None, None, None, None
398398

399-
if not self._debug and self._batch_renderer is not None:
399+
if self._batch_renderer is not None:
400400
rgb_arr, depth_arr, seg_idxc_arr, normal_arr = self._batch_render(
401401
rgb, depth, segmentation, normal, force_render, antialiasing
402402
)
403-
elif self._debug and self._raytracer is not None:
403+
elif self._raytracer is not None:
404404
if rgb:
405405
self._raytracer.update_scene()
406406
rgb_arr = self._raytracer.render_camera(self)
@@ -544,7 +544,6 @@ def render_pointcloud(self, world_frame=True):
544544
point_cloud = point_cloud[:, :3].reshape((*depth_arr.shape, 3))
545545
return point_cloud, mask
546546

547-
@gs.assert_built
548547
def set_pose(self, transform=None, pos=None, lookat=None, up=None, env_idx=None):
549548
"""
550549
Set the pose of the camera.
@@ -619,9 +618,10 @@ def set_pose(self, transform=None, pos=None, lookat=None, up=None, env_idx=None)
619618
self._multi_env_transform_tensor[env_idx] = transform
620619
self._multi_env_quat_tensor[env_idx] = _T_to_quat_for_madrona(transform)
621620

622-
self._rasterizer.update_camera(self)
623621
if self._raytracer is not None:
624622
self._raytracer.update_camera(self)
623+
elif self._batch_renderer is None:
624+
self._rasterizer.update_camera(self)
625625

626626
@gs.assert_built
627627
def set_params(self, fov=None, aperture=None, focus_dist=None, intrinsics=None):
@@ -662,9 +662,10 @@ def set_params(self, fov=None, aperture=None, focus_dist=None, intrinsics=None):
662662
else:
663663
self._fov = intrinsics_fov
664664

665-
self._rasterizer.update_camera(self)
666665
if self._raytracer is not None:
667666
self._raytracer.update_camera(self)
667+
elif self._batch_renderer is None:
668+
self._rasterizer.update_camera(self)
668669

669670
@gs.assert_built
670671
def start_recording(self):
@@ -706,7 +707,7 @@ def stop_recording(self, save_to_filename=None, fps=60):
706707
+ f'_cam_{self.idx}_{time.strftime("%Y%m%d_%H%M%S")}.mp4'
707708
)
708709

709-
if not self._debug and self._rgb_stacked:
710+
if self._rgb_stacked:
710711
for env_idx in self._visualizer._context.rendered_envs_idx:
711712
env_imgs = [imgs[env_idx] for imgs in self._recorded_imgs]
712713
env_name, env_ext = os.path.splitext(save_to_filename)

genesis/vis/visualizer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ def add_camera(self, res, pos, lookat, up, model, fov, aperture, focus_dist, GUI
145145
GUI,
146146
spp,
147147
denoise,
148-
env_idx=0 if debug else env_idx,
148+
env_idx=env_idx,
149149
debug=debug,
150150
)
151151
self._cameras.append(camera)

0 commit comments

Comments
 (0)