MCPcopy Create free account
hub / github.com/google-deepmind/dm_control / render

Method render

dm_control/viewer/renderer.py:152–184  ·  view source on GitHub ↗

Renders the scene to the specified viewport. Args: viewport: Instance of Viewport. scene: Instance of MjvScene. Returns: A 3-dimensional array of shape (viewport.width, viewport.height, 3), with the contents of the front buffer.

(self, viewport, scene)

Source from the content-addressed store, hash-verified

150 self._pixels = np.zeros((1, 1, 3), dtype=np.uint8)
151
152 def render(self, viewport, scene):
153 """Renders the scene to the specified viewport.
154
155 Args:
156 viewport: Instance of Viewport.
157 scene: Instance of MjvScene.
158 Returns:
159 A 3-dimensional array of shape (viewport.width, viewport.height, 3),
160 with the contents of the front buffer.
161 """
162 if not np.array_equal(self._prev_viewport, viewport.dimensions):
163 self._prev_viewport = viewport.dimensions
164 if self._mujoco_context:
165 self._mujoco_context.free()
166 self._mujoco_context = None
167 if not self._mujoco_context:
168 # Ensure that MuJoCo's offscreen framebuffer is large enough to
169 # accommodate the viewport.
170 new_offwidth = max(self._model.vis.global_.offwidth, viewport.width)
171 new_offheight = max(self._model.vis.global_.offheight, viewport.height)
172 self._model.vis.global_.offwidth = new_offwidth
173 self._model.vis.global_.offheight = new_offheight
174 font_scale = _HIDPI_FONT_SCALE if _has_high_dpi() else _DEFAULT_FONT_SCALE
175 self._mujoco_context = wrapper.MjrContext(
176 model=self._model,
177 gl_context=self._surface,
178 font_scale=font_scale)
179 self._rgb_buffer = np.empty(
180 (viewport.height, viewport.width, 3), dtype=np.uint8)
181
182 with self._surface.make_current() as ctx:
183 ctx.call(self._render_on_gl_thread, viewport, scene)
184 self._pixels = self._surface.to_pixels(self._rgb_buffer)
185
186 def _render_on_gl_thread(self, viewport, scene):
187 mujoco.mjr_setBuffer(mujoco.mjtFramebuffer.mjFB_OFFSCREEN,

Callers

nothing calls this directly

Calls 5

_has_high_dpiFunction · 0.85
make_currentMethod · 0.80
to_pixelsMethod · 0.80
freeMethod · 0.45
callMethod · 0.45

Tested by

no test coverage detected