## Java 3DTM 1.5.0-build4 Pre-Release Notes

NOTE: These release notes are incomplete.

This file contains important pre-release information for users of the Java 3DTM API, version 1.5.0-build4.

System Requirements (Solaris/Sparc, Solaris/x86, Linux, Windows)
JOGL Rendering Pipeline
Improvements in 1.5.0
More Information

### System Requirements

The 1.5.0-build4 version of the Java 3D API has been released for Solaris (both sparc and x86), Linux (both x86 and amd64), and Windows.

#### Solaris/Sparc

The 1.5.0-build4 version of Java 3D for Solaris/SPARC requires the following:

- JDK 1.5.0 or later from Sun Microsystems: http://java.sun.com/j2se/
- Solaris 9 or later
- Frame Buffer with OpenGL 1.3 support (XVR-600, XVR-1200, Expert3D, etc.)
- OpenGL 1.3 for Solaris or later. To find your current version, use: "`pkginfo -l SUNWglrt`". OpenGL for Solaris can be obtained at: http://www.sun.com/software/graphics/opengl/

#### Solaris/x86

The 1.5.0-build4 version of Java 3D for Solaris/x86 requires the following:

- JDK 1.5.0 or later from Sun Microsystems: http://java.sun.com/j2se/
- Solaris 10 or later
- NVIDIA Frame Buffer with OpenGL 1.3 or later

#### Linux

The 1.5.0-build4 version of Java 3D for Linux (x86 or amd64) requires the following:

- JDK 1.5.0 or later from Sun Microsystems: http://java.sun.com/j2se/
- Graphics adapter with driver that supports the GLX extension: GLX 1.3 or later and OpenGL 1.3 or later

#### Windows

The 1.5.0-build4 version of Java 3D for Windows 2000, and Windows/XP requires the following:

- JDK 1.5.0 or later from Sun Microsystems: http://java.sun.com/j2se/
- Windows 2000 or Windows/XP
- Support for either OpenGL or DirectX as shown below.

OpenGL version

The (default) OpenGL renderer of Java 3D requires OpenGL 1.3 or later, available from your graphics card manufacturer.

DirectX version

The (optional) DirectX renderer of Java 3D requires DirectX 9.0 or later, which is available from Microsoft at: http://www.microsoft.com/windows/directx/ . The DirectX version of Java 3D is selected by setting the "`j3d.rend`" system property to "`d3d`", for example:

`java -Dj3d.rend=d3d ClassName`

### JOGL Rendering Pipeline

A preliminary version of the JOGL rendering pipeline, as described in issue 229, is now available on all supported platforms. It will also run on Apple Mac OSX (x86 or PPC)! The easiest way to run Java 3D applications using the JOGL pipeline is via Java Webstart from your browser (with no setup required). Click here and go to the "Early access test program" section at bottom of the page to run a Java 3D example program from your browser via the JOGL pipeline. These examples will use JOGL on Mac OSX and the native OpenGL pipeline on all other platforms.

For those who download and install Java 3D locally, there isn't a specific Mac build yet. To run Java 3D on the Mac, just grab the binary for any other platform (e.g., Windows) and run it. It won't try to use the DLLs. The JOGL renderer is the default on Mac OSX. You can select the JOGL renderer on other platforms by setting the "`j3d.rend`" system property to "`jogl`", for example:

`java -Dj3d.rend=jogl ClassName`

You will need to download JOGL and install it into the JRE along with the Java 3D jar files (or include it in your PATH/CLASSPATH).

Most Java 3D features are implemented in the JOGL pipeline, but the following are known to be missing:

- Off-screen rendering
- Cg shading language
- Programmable shader vertex attributes

There may be others missing, as well. Any missing function will print out a message of the form:

`JoglPipeline.createOffScreenBuffer()`

#### UPDATE : 2-Jul-2006

The JOGL rendering pipeline should now be feature complete, but not all code paths have been tested. If you encounter problems, or, more specifically, see any differences in rendering results between the native OpenGL pipeline and the JOGL pipeline, please either post on the Java 3D forum or file a bug.

Run a daily build as of 2006-07-02 or later to use the feature complete version of the JOGL Pipeline. This will be available in 1.5.0-build5.

### Improvements in 1.5.0-build4

#### New Features / Enhancements

- JOGL Rendering Pipeline mostly complete (see above)

#### Issues Fixed

Issue |  | Description
--- | --- | ---
241 |  | Texture3D by Reference Fails
311 |  | Broken build for linux on ppc.
320 |  | Shader Appearance update is asynchronous to transform update
321 |  | bug in vecmath.Matrix3d.set(AxisAngle a1)

### Improvements in 1.5.0-build3

#### New Features / Enhancements

- JOGL Rendering Pipeline
- Memory free lists for Java 3D messages, etc., are now disabled by default (issue 123). We temporarily added a new system property, "j3d.useFreeLists", that can be set to true to re-enable memory free lists. We eventually plan to completely remove the memory free lists.

#### Issues Fixed

Issue |  | Description
--- | --- | ---
123 |  | Reduce or eliminate use of memory free lists
268 |  | Replace native getNumberOfProcessor() with pure Java equiv
269 |  | GLSL on nVidia cards: Conflict of a builtin vertex attribute
275 |  | sleep for setMinimumFrameCycleTime should not hold lock
279 |  | Intermittent hang in MasterControl while running lg3d
288 |  | Objects in RenderBin free lists keep reference to user data
308 |  | WakeupOnElapsedTime occasionally doesn't wake up on elapsed time

### Improvements in 1.5.0-build2

#### New Features / Enhancements

- Added preliminary API for NIO texture images

#### Issues Fixed

Issue |  | Description
--- | --- | ---
264 |  | Behaviors that throw an Error cause the BehaviorScheduler to die
266 |  | Canvas3D should throw NPE by default for null graphicsConfig

### Improvements in 1.5.0-build1

#### New Features / Enhancements

- Non-power-of-two textures for Texture2D

#### Issues Fixed

Issue |  | Description
--- | --- | ---
160 |  | AlternateAppearance behaves defferently in J3D 1.3.2 comparing to J3D 1.3.1
172 |  | Texture.setImage fails to check ImageComponent sizes when not live
216 |  | J3DTimer should use clock_gettime on Linux
221 |  | UnsatisfiedLinkError if shading language set to Cg on d3d
244 |  | ClassCastException in Group.setChild
247 |  | SHADER_ATTRIBUTE_TYPE_ERROR is fired when ShaderAttributeArray is used (GLSL shaders)
248 |  | Wrong spec. on the setFlags() method of com.sun.j3d.utils.pickfast.PickTool
249 |  | NullpointerException in MasterControlThread when adding a Light
251 |  | Typo in spec: PickTool.PickAny and PickTool.PickClosest return is wrong

### More Information

For the latest information on Java 3D, see the main Java 3D project page on java.net.

Click here for a list of open issues.