Skip to content

Commit 8ae2b99

Browse files
committed
Fix Rasterizer video recording.
1 parent f0f8cc2 commit 8ae2b99

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

genesis/ext/pyrender/viewer.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1063,11 +1063,12 @@ def _save_image(self):
10631063
filename = self._get_save_filename(["png", "jpg", "gif", "all"])
10641064
if filename is not None:
10651065
self.viewer_flags["save_directory"] = os.path.dirname(filename)
1066-
imageio.imwrite(filename, self._renderer.read_color_buf())
1066+
data = self._renderer.jit.read_color_buf(*self._viewport_size, rgba=False)
1067+
imageio.imwrite(filename, img_arr)
10671068

10681069
def _record(self):
10691070
"""Save another frame for the GIF."""
1070-
data = self._renderer.read_color_buf()
1071+
data = self._renderer.jit.read_color_buf(*self._viewport_size, rgba=False)
10711072
if not np.all(data == 0.0):
10721073
self.video_recorder.write_frame(data)
10731074

tests/test_render.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ def test_segmentation(segmentation_level, particle_mode):
119119

120120
@pytest.mark.required
121121
@pytest.mark.flaky(reruns=3, condition=(sys.platform == "darwin"))
122-
def test_batched_offscreen_rendering(show_viewer, tol):
122+
def test_batched_offscreen_rendering(tmp_path, show_viewer, tol):
123123
scene = gs.Scene(
124124
vis_options=gs.options.VisOptions(
125125
# rendered_envs_idx=(0, 1, 2),
@@ -247,6 +247,7 @@ def test_batched_offscreen_rendering(show_viewer, tol):
247247
)
248248
scene.build(n_envs=3, env_spacing=(2.0, 2.0))
249249

250+
cam.start_recording()
250251
for _ in range(7):
251252
dofs_lower_bound, dofs_upper_bound = robot.get_dofs_limit()
252253
qpos = dofs_lower_bound + (dofs_upper_bound - dofs_lower_bound) * torch.rand(robot.n_qs)
@@ -270,6 +271,7 @@ def test_batched_offscreen_rendering(show_viewer, tol):
270271

271272
for i in range(3):
272273
assert_allclose(steps_rgb_arrays[0][i], steps_rgb_arrays[1][i], tol=tol)
274+
cam.stop_recording(save_to_filename=(tmp_path / "video.mp4"))
273275

274276

275277
@pytest.mark.required

0 commit comments

Comments
 (0)