Areas
  • J3D FAQ
  • Tutorials
  • Utilities
  • Books
  • News
  • Other Sites
  • FAQ Topics
  • Introduction to Java 3D
  • Documentation
  • Speed issues
  • Running Java 3D
  • Object manipulation
  • Scene appearance
  • Java 3D and Swing
  • Image capturing
  • Stereo viewing
  • Input Devices
  • Textures
  • Web browsers
  • Video Hardware
  • VRML
  •   

    Introduction to Java 3D

    1. What is Java 3D?

    2. What's the difference between Java 3D and OpenGL/Direct3D/PHIGS/, etc?

    3. Isn't using Java to do 3D graphics going to be slow?

    4. Where can I get Java 3D, and where is the Java 3D home page?

    5. Requirements and getting Java 3D installed and running

    6. Ability to run Java 3D under JDK 1.1?

    Return to the main FAQ page for more questions and answers.

      

    1. What is Java 3D?

    Java3D is a low level 3D scene-graph based graphics programming API for the java language. It does not form part of the core APIs required by the Java specification. The class libraries exist under the javax.media.j3d top level package as well as utility classes provided in javax.vecmath.

    A low level API provides routines for creation of 3D geometeries in a scenegraph structure that is independent of the underlying hardware implementation for realtime programming. The API provides scenegraph compilation and other optimization techniques. It is heavily optomised towards the requirements of realtime 3D rendering and hence does not contain capabilities for photo-realistic rendering effects used to produce movie quality images (ie ray-tracing or radiosity based rendering algorithms).

    The Java3D API consists of two parts: The API Specification and the implementation. Java3D mainly consists of the API specification. Anyone may implement the spec. Sun also provide an implementation of this specification but is encouraging 3rd party developers to implement J3D directly to the hardware.

    Back to top

    2. What's the difference between Java 3D and OpenGL/Direct3D/PHIGS/, etc?

    Java3D is another 3D programming API that exists on a similar level to OpenGL, Direct3D, PHIGS and similar systems. It is designed to use hardware accelaration wherever possible based on the underlying graphics architecture of the OS. That is, J3D provides a 3D rendering API for the Java language, but at the same time it may use OpenGL to do the interface to the hardware. J3D does not require direct hardware device driver support like the other APIs because it could rely on them to build its functionality. Sun is encouraging graphics board vendors to provide native implementations of J3D, but nothing has been seen yet.

    For unix users Sun's Java3D is implemented on top of OpenGL. For Win32 users Java3D is available for OpenGL and a very early alpha of a Direct3D implementation is out which is not as stable.

    There are Java bindings to the other APIs. Magician is an OpenGL binding written in Java:

    http://www.arcana.co.uk/products/magician/

    Microsoft have part of their J/Direct APIs available with their VM implementation.

    Back to top

    3. Isn't using Java to do 3D graphics going to be slow?

    Java 3D is capable of taking advantage of graphics hardware in your system. The speed you see will depend on the quality of the graphics hardware on your machine.

    You can also run Java 3D on machines without special graphics hardware, but it will require software graphics libraries. Be aware that it won't run nearly as quickly in software alone as it will with dedicated graphics hardware.

    Back to top

    4. Where can I get Java 3D, and where is the Java 3D home page?

    Java 3D 1.2 Alpha 1 is available from the Java.Sun.COM .

    The Java 3D Computing home page is located at: Java 3D Computing

    Back to top

    5. Requirements and getting Java 3D installed and running

    First, download Java 3D 1.1 from the java.sun.com

    You must be running Java 2 for Java 3D to work correctly.

    For windows, you should be running the Java 2 (JDK 1.2) Windows 95/98/NT Production release.

    For Solaris, you should run the Java 2 (JDK 1.2) Solaris Production Implementation.

    You also need OpenGL support on your system to run Java 3D. If you are using Windows95/NT or Windows NT, you can get the OpenGL libraries from ftp://ftp.microsoft.com/softlib/mslfiles/opengl95.exe . It will not run using Win32s. Implementations for OpenGL and Direct3D are available.

    If you are using Solaris, you can download the files from http://www.sun.com/solaris/opengl . You must use OpenGL 1.1.1 with patch 106022-03 or later.

    Most importantly, follow all the instructions included in the Java3D download to set everything up. Once you've done all of that, try compiling and running some of the examples included in the archive.

    No other implementations of Java 3D are currently available.

    Back to top

    6. Ability to run Java 3D under JDK 1.1?

    No. Java 3D requires the use of a number of Java 2 specific features in order to run that cannot be removed.

    More specifically: Java 3D uses the GraphicsConfiguration classes to get screen information to decide how to do the hardware/software rendering. Java 1.1 does not provide this therefore no implementation of Java 3D will ever run on Java 1.1.

    Back to top

      

    [ Copyright Info ] [ FAQ Home ] [ J3D.org Home ] [ Tutorials ] [ Utilities ] [ Books ] [ Contact Us ]