Optimizedspeedwhereverpossible: During runtime, rendering capability bits can
be used to optimize the scene graph for the fastest possible renders. This allows Java
3D to be able to be used in, say, interactive graphics environments such as games,
simulations, and low-latency situations, as well as in offline, high quality graphics
Alargeandgrowingnumberof3Dloaders: As an example, Java 3D VRML97 file
loader and browser, together with their codes, are freely available.
The com.sun.j3d.utils.trackers package included with Sun's implementation provides
classes for Fakespace, Logitech, and Polhemus devices.
On the other hand, the following lists downs some of the disadvantages of Java 3D.
StandardextensionAPI: Java 3D is a standard extension API to the Java2 platform.
This dependence can sometimes be regarded as a risk that limits the portability of
Java 3D code across platforms.
Availabilityconstraints: The only major vendor currently supporting Java 3D is
Sun, through its implementation for Solaris and Win32. This is quite unlike OpenGL,
which is available for a variety of Unix, Windows, and other systems. The issue of
cross-platform portability is thus more severe for Java 3D.
Hidingofrenderingpipelinedetails: Since Java 3D is a high level API, it inten-
tionally hides details of the rendering pipeline from the developer. This makes it
unsuitable for applications where such details are important.
Heavyweightcomponents: Being heavyweight, Java 3D has a native non-Java peer
that actually carries out the rendering. This may complicate GUI development if Java
Swing and its all-Java, or lightweight, components are also used. While workarounds
to these issues can be worked out, lightweight and heavyweight components in general
do not mix well in the same container objects and windows.
While both Java 3D and VRML are commonly used for 3D graphics development,
Java 3D is in general a more specialized tool for creating customized 3D graphical appli-
cations. Also, as illustrated by Liang, 2006, in a Java 3D logic design example that gener-
ates VRML-based files, it is possible to combine Java 3D and VRML and explore their
advantages in the same application. The main differences between Java 3D and VRML
are summarized below.
Programapproach: VRML adopts a content-centric approach, while Java 3D uses
a program-centric approach in the building of 3D worlds.
Flexibility: Java 3D is more flexible in terms of programming style and the functions
available. Essentially, the larger number of functions available under Java 3D makes
Search WWH ::