Add orthographic cameras.
Orthographic cameras are specified by setting the `orthographic` attribute of the `<camera>` element. The `fovy` attribute is still used to specify the field-of-view, but its semantic is different for orthographic cameras. For orthographic cameras, the field-of-view is expressed in units of length, rather than degrees. Other related changes: * Fix bug in the ordering of `cam_xxx` elements in `mjModel`. * Make camera visualization translucent only when the frustum is visualized. * Added a button to `simulate` to toggle between perspective and orthographic free cameras. https://youtu.be/ZXBTEIDWHhs PiperOrigin-RevId: 642293435 Change-Id: Id090a421ad88ab404b5b27ddbbd6bfc81ad49bc5
This commit is contained in:
committed by
Copybara-Service
parent
171b0d6e06
commit
07fc95ca9a
@@ -0,0 +1,34 @@
|
||||
<!-- Test model for visual debugging of orthographic cameras. -->
|
||||
|
||||
<mujoco>
|
||||
<visual>
|
||||
<!-- free camera is orthorgaphic with a 5m vertical field-of-view -->
|
||||
<global orthographic="true" fovy="5"/>
|
||||
<scale camera="1"/>
|
||||
</visual>
|
||||
|
||||
<asset>
|
||||
<texture name="grid" type="2d" builtin="checker" width="512" height="512" rgb1=".8 .6 .4" rgb2=".2 .3 .4"/>
|
||||
<material name="grid" texture="grid" texrepeat="10 10" texuniform="false" reflectance=".2"/>
|
||||
</asset>
|
||||
|
||||
<default>
|
||||
<camera orthographic="true"/>
|
||||
</default>
|
||||
|
||||
<worldbody>
|
||||
<light pos="0 0 3"/>
|
||||
<geom type="plane" size="10 10 .01" material="grid"/>
|
||||
|
||||
<body pos=".5 .5 .5">
|
||||
<freejoint/>
|
||||
<geom type="box" size=".5 .5 .5" pos="0 0 .5"/>
|
||||
</body>
|
||||
|
||||
<!-- box should pefectly fit within field-of-view -->
|
||||
<camera name="fovy = 1" pos=".5 .5 2" orthographic="true" fovy="1"/>
|
||||
|
||||
<!-- 2 floor squares should pefectly fit within field-of-view -->
|
||||
<camera name="fovy = 2" pos="0 0 2" fovy="2"/> <!-- inherits orthographic="true" from defaults -->
|
||||
</worldbody>
|
||||
</mujoco>
|
||||
Reference in New Issue
Block a user