| Customize Help

3D display and graphics overview

You can display point cloud containers and fully corrected depth map image buffers in a window on the desktop using a MIL 3D display. You can also display 3D annotations (3D graphics such as cubes, cylinders, axes and text) in a 3D display.

There are additional hardware requirements to use MIL 3D displays. For more information, see the Hardware requirements subsection of the Requirements to run MIL section of Chapter 1: Introduction.

3D displays are rendered in real-time, meaning that you can manipulate the view to show point clouds and 3D annotations from any angle. By default, the view in a 3D display can be changed interactively using the mouse and keyboard. Optionally, you can use M3ddispSetView() to manually change the view within your application.

A 3D display shows everything in its internal 3D graphics list. To show a 3D-displayable point cloud container or fully-corrected depth map image buffer in a 3D display, you must add it to that 3D display's internal graphics list (either using M3ddispSelect(), M3ddispSelectWindow(), or M3dgraAdd()). Any subsequent changes to the 3D-displayable point cloud container or fully-corrected depth map image buffer will be shown in the 3D display. A 3D-displayable point cloud or depth map can be included in the 3D graphics list of any number of 3D displays.

Unlike 2D displays, each 3D display has its own 3D graphics list that is allocated and freed along with the 3D display. You cannot associate a 3D display with a 3D graphics list that you have allocated yourself. You can copy 3D graphics from any 3D graphics list to the 3D display's internal 3D graphics list using M3dgraCopy().

A 3D graphics list has a tree structure of 3D graphics, at the top of which is an invisible 3D graphic called the root node. The position and orientation of a 3D graphic is determined by its transformation matrix, which is applied relative to its parent in the tree structure. When a parent 3D graphic is moved, all of its descendents are moved accordingly. The root node always has the identity transformation matrix. You must specify the parent 3D graphic when you create 3D graphics or add 3D-displayable containers or fully corrected depth map image buffers, using functions from the M3dgra...() module.