@@ -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 )
0 commit comments