-supplied method set left eye view render opaque scene graph objects call renderField(FIELD_LEFT) // user-supplied method render transparent scene graph objects set right eye view render opaque scene graph objects again call renderField(FIELD_RIGHT) // user-supplied method render transparent scene graph objects again call postRender() // user-supplied method synchronize and swap buffers call postSwap() // user-supplied method
The basic Java 3D monoscopic rendering loop is as follows:
clear canvas call preRender() // user-supplied method set view render opaque scene graph objects call renderField(FIELD_ALL) // user-supplied method render transparent scene graph objects call postRender() // user-supplied method synchronize and swap buffers call postSwap() // user-supplied method
In both cases, the entire loop, beginning with clearing the canvas and ending with swapping the buffers, defines a frame. The application is given the opportunity to render immediate-mode geometry at any of the clearly identified spots in the rendering loop. A user specifies his or her own rendering methods by extending the Canvas3D class and overriding the preRender, postRender, postSwap, and/or renderField methods. Updates to live Geometry, Texture, and ImageComponent objects in the scene graph are not allowed from any of these callback methods.
Serialization
Canvas3D does not support serialization. An attempt to serialize a Canvas3D object will result in an UnsupportedOperationException being thrown.
Additional Information
For more information, see the Introduction to the Java 3D API and View Model documents.
@see Screen3D
@see View
@see GraphicsContext3D