Home Up Feedback Contents Search

 

Java 3D API

  3DCenter

Up

 

Java 1.2 3D API Specification 

Using Information from www.java.sun.com


General Implementation: 

Java 3D API is layered on top of existing lower-level immediate-mode 3D rendering APIs, such as OpenGL and Direct3D. The initial Java 3D implementations are written mostly in the JavaTM programming language but also take advantage of native methods to provide maximum performance.


Immediate Mode:

The design of the Java 3D immediate mode enables cross-platform capability for all applications written using the Java 3D API. An application developer using immediate mode exclusively, whose main concern is performance and not inter-platform operability, should use the appropriate lower-level API rather than Java 3D. Otherwise, Java 3D's immediate mode provides the best compromise of features in a one-size-fits-all immediate-mode layer while still achieving reasonable performance.


View Model:

Java 3D's view model is quite simple: the application author places, orients, and scales a view platform object--period. Java 3D does the rest of the work. If the application only delivers an environment and leaves the details of viewpoint control to a browser, the application doesn't even need to provide a view platform object. If an application wants to port over existing code that uses a camera-based view model, it makes a single Java 3D call to establish the camera's parameters. Then, by moving the viewplatform instead of the camera, things function much as they did in the original system.


Tracker Model:

Java AWT provides an abstraction of the most common desktop interaction peripherals: keyboards and mice. Java 3D uses these as is, rather than creating an incompatible I/O model. But for real-time critical devices, such as joysticks and six-degree-of-freedom devices, where AWT had not yet defined a mechanism, Java 3D introduces a new real-time class of I/O device. 


Vector Mathematics Library:

Java Software has decided to make Java 3D's Vector objects and methods a separate package, extend them to include more functionality, and make them available to other evolving Java APIs. (In the process, some additional 2D vector and matrix classes may be defined.) However, to make the Vector Mathematics API available for review at the same time as the Java 3D APIs.


Geometry Compression Format:

Java 3D is a run-time API. It does not define an external file format. The geometry compression format is a special case. It is both a run-time binary format (for platforms with hardware support for compressed geometry), a format that applications can use at the file and network level, and one that can interact with APIs other than Java 3D.


Triangles:

The triangle serves as a very useful lowest-common-dominator primitive that ports nicely across most platforms. Higher-level primitives vary massively by application area. In many areas, no other primitives are used. In others, fully trimmed NURBS are the minimum next step. By limiting the directly-supported graphics shapes to triangles, applications can choose to add further functionality at higher-level abstractions. 


Double-buffered, True Color, Z-buffered Rendering Model:

Java has a very high API standard for minimal rendering mode. It requires double buffered, true color and Z-buffered mode as the minimum. This is done because sun perceives the market to be ready for high end graphic implementations.


                                        This site created and maintained by Jia Xu.
                                        Send mail to jxu@mbhs.edu with questions or comments about 3DCT.
                                        Last modified: January 15, 2000