Java 3D

from Wikipedia, the free encyclopedia
Java 3D
Basic data

developer Sun Microsystems
Current  version 1.6.0
(2015)
operating system platform independent
License BSD license (j3d-core-utils, j3d-examples), GNU General Public License (j3d-core, vecmath)
java3d.java.net

Java 3D is a class library of Java classes for creating, manipulating and displaying three-dimensional graphics within Java application programs and applets. With Java 3D three-dimensional objects can be modeled and rendered and the behavior and the view can be controlled by a Java program .

Java 3D has been developed by Sun Microsystems since 1997 . Version 1.0 appeared in December 1998. Version 1.4 has been available since March 2006. An important performance feature here is the possibility of shader programming for current graphics hardware. Version 1.5 introduced the JOGL rendering pipeline, among other things, to all platforms.

After Sun had stopped the further development in the meantime, the library has been released as open source since summer 2004 . There are currently versions available for OpenGL for Windows systems and various UNIX platforms, as well as a version for Direct3D on Windows 9x, Windows 2000 and Windows XP. For Mac OS X there is a version for JDK 1.4 (up to 10.3), the JDK 1.5 for Mac OS X (10.4) already contains Java 3D (in version 1.3). Java 3D versions 1.5 and 1.6 are available for Windows, Linux, Solaris and Mac OS X.

Scene graph

Java 3D encapsulates the functionality of the underlying JOGL ( OpenGL - or DirectX in version 1.5) interface in an easily understandable, object-oriented program concept based on a scene graph . In the scene graph, the logical structure of the objects to be displayed is mapped onto a similarly structured, tree-like structure, which essentially consists of definitions of transformations and geometry data. The view of the scene structured in this way allows comfortable handling of the objects. The integration of a soundscape in the scene graph is also possible.

The library implements objects and methods to represent a scene and only uses pre-implemented function libraries adapted to the respective operating system for their representation. This means that the video hardware used in the system is used to display all objects created. The achievable rendering speed is potentially similarly high as with direct programming with C and OpenGL or Direct3D. It is therefore possible to develop powerful 3D scenarios that can be visualized on the GUI .

Java 3D does not provide for direct access to OpenGL or Direct3D functions. Features of these interfaces, which are not encapsulated by Java 3D, cannot be used by application programs based on Java 3D. Due to the constant further development of video hardware, this has repeatedly led to the fact that newly supported features in Java 3D were only available with a delay or not at all.

Coordinate system

The orientation of the spatial axes in Java 3D forms a right-handed coordinate system . In the Java 3D nomenclature, the space spanned in this way is referred to as the virtual universe . Only this coordinate system is provided, there is no possibility of assigning a different orientation to the axes.

The so-called Locales objects make it possible to use a very precise coordinate system: these coordinates, which are implemented as 256-bit fixed point numbers , make it possible to calculate all objects in one coordinate system from the atomic level to the macrocosm. This simplifies the use of the API for many scientific applications.

Web links

Wikibooks: Java Standard: Java3D  - learning and teaching materials