Java 3D 1.5.1 Release Notes

## Java 3DTM 1.5.1 Release Notes

This file contains important release information for users of the Java 3DTM API, version 1.5.1.

System Requirements (Solaris Sparc, Solaris x86, Linux, Windows, Mac OS X)
Improvements in 1.5.1
JOGL Rendering Pipeline
More Information

NOTE: We recommend that you uninstall all previous versions of Java 3D before installing this version.

### System Requirements

The 1.5.1 version of the Java 3D API has been released for Solaris (both sparc and x86/amd64), Linux (both x86 and amd64), Windows (both x86 and amd64), and Mac OS X (both PPC and x86).

#### Solaris Sparc

The 1.5.1 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 or better (XVR-600, XVR-1200, Expert3D, etc.). A frame buffer with OpenGL 1.2 support will work, but with reduced texture mapping functionality.
- 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.1 version of Java 3D for Solaris x86/amd64 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.1 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. A graphics adapter with OpenGL 1.2 support will work, but with reduced texture mapping functionality.

#### Windows

The 1.5.1 version of Java 3D for Windows 2000, Windows XP (x86 or amd64), or Windows Vista requires the following:

- JDK 1.5.0 or later from Sun Microsystems: http://java.sun.com/j2se/
- Windows 2000, Windows XP, or Windows Vista
- 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`

NOTE: The DirectX version of Java 3D is used if a suitable version of OpenGL cannot be found. Note also that DirectX is chosen by default on Windows Vista systems with an ATI graphics card (due to ATI driver bugs).

#### Mac OS X

The 1.5.1 version of Java 3D for Mac OS X (PPC or x86) requires the following:

- JDK 1.5.0 or later from Apple: http://developer.apple.com/java/download/
- Java Binding for OpenGL (JOGL), available at: https://jogl.dev.java.net/
  you can click here for a direct link to the download folder
- Apple OS X 10.3 or later (10.4 or later is required for Intel-based Apple systems)
- Support for OpenGL 1.3 or later

### Improvements in 1.5.1

#### Enhancements

- Windows Vista Support
- Pack200 Support for Java Web Start Applications
- Logging Framework
- Added support for JNLPAppletLauncher (will be available shortly)

#### Issues Fixed in 1.5.1

Issue |  | Description
--- | --- | ---
126 |  | Use OpenGL automatic mipmap generation
157 |  | Would like a JOALMixer implementation of AudioEngine3DL2
197 |  | Consider supporting pack200 for Java Web Start / JNLP
226 |  | D3D : fail on stress test for the creation and destruction of Canvases
239 |  | Stencil buffer should be cleared at the start of each frame
257 |  | Java3D Applet Launcher support
274 |  | NPE With Simultaneous View and Content Side PickingBehaviors
293 |  | Need better logging for j3d error, warning, assertion messages.
314 |  | Issue with Stenciled Transparent Objects
347 |  | OffScreen Canvas3D always reloads textures, display lists
348 |  | Programmable shaders do not work for OffScreen Canvas3D
357 |  | Memory leak when using textures with multiple views
362 |  | dynamic assignment if Canvas3D to View makes content disappear
364 |  | Canvas3D.setOffScreenBuffer(null) sometimes hangs
378 |  | Shaders are not rendered when Canvas3D is created and destroyed
381 |  | ByRef, yDown, 4BYTE_ABGR throws ArrayIndexOOB Exception
396 |  | Off-screen Canvas3D / D3D: Resizing crashes VM
402 |  | Off-screen Canvas3D throws Exception on BufferedImage of TYPE_4BYTE_ABGR and TYPE_INT_ARGB
408 |  | Poor quality of auto-generated mipmaps
411 |  | Add Primitive flag to reverse Y for tex coords
412 |  | Exception when updating Y_UP BY_REFERENCE image
414 |  | D3D: NPOT textures not properly disabled on card that lacks support
415 |  | Need ability to disable NPOT textures for raster/background
416 |  | JOGL: ClassCastException in Renderer with NioImageBuffer
417 |  | JOGL: Mip-mapped NPOT textures rendered incorrectly
424 |  | JOALMixer requires the default Viewer's setUserHeadToVworldEnable setting to true
425 |  | NullPointerException in automatic mipmap generation
427 |  | Method with constructor name: ObjectFileMaterial
430 |  | Deliver JOALMixer for JNLP and download bundle
431 |  | disabled PointSound starts playing when scheduling bounds are entered
433 |  | JCanvas3D crashed when using jogl pipe
434 |  | OutOfMemory after creating millions of RenderAtomListInfo objects
437 |  | SceneGraphStreamWriter NPE
435 |  | Memory leak when reusing an Appearance with a single Texture
438 |  | ConfiguredUniverse & SimpleUniverse constructor missing
441 |  | ArrayIndexOutOfBoundsException in IndexedTriangleArrayRetained Intersect
444 |  | Transform updates overly expensive
446 |  | JCanvas3D and focus
447 |  | Enhance Element Traversal To Improve Pick Hits
449 |  | SceneGraphIO can not support ImageComponent2DURL
452 |  | Java 3D should fall back to D3D if OpenGL not available
453 |  | SceneGraphIO does not support SceneGraphObjects name field
455 |  | Need to disable NPOT textures for older cards that claim to support it.
456 |  | NPOT background ( maybe raster) fail to work if HW doesn't support NPOT texture
457 |  | ClassCastException in MasterControl when updating Texture3D
458 |  | Canvas3D stops rendering on window close
461 |  | ClassCastException thrown when using filters with NioImageBuffer
466 |  | NPE when updating lights with multiple views
467 |  | Add Java3D source jar file as a separate or part of the distribution
468 |  | SceneGraphStreamReader/Writer do not close the stream
470 |  | Need informative error message for mismatched NioImageBuffer
471 |  | Performance degradation with shader attribute object setValue()
474 |  | Update javadoc for TextureLoader for ImageException
478 |  | Memory leak in TransparencySortController
479 |  | JOGL: Screen door transparency renders incorrectly on JoglPipeline
480 |  | getBounds should cache results
481 |  | JOALSample: cannot load if only URLString is given in MediaContainer
485 |  | ClassCastException when switching shaders in PhongShadingGLSL example
486 |  | Java 3D hangs on some Windows Vista systems
488 |  | ImageComponent3D bug with by-reference images
489 |  | AutoOffScreenCanvas3D: postSwap() is called twice
490 |  | JOALSample fails to load second sample
491 |  | Refactor platform-specific classes to use non-overlapping class names
492 |  | ImageComponent2D.setSubImage throws IllegalArgumentException
494 |  | Group.moveto(null) throws a NullPointerException
496 |  | Big performance hit in VirtualUniverse.getNodeId
500 |  | Reuse JOAL buffers where possible

### JOGL Rendering Pipeline

A JOGL rendering pipeline, as described in issue 229, is now available on all supported platforms, including Apple Mac OS X (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 to run a Java 3D example program from your browser via the JOGL pipeline. These examples will use JOGL on Mac OS X and the native OpenGL pipeline on all other platforms.

The JOGL renderer is the default on Mac OS X. 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).

NOTE: You must install both Java 3D and JOGL into the JRE, or else you must install neither Java 3D nor JOGL into the JRE. If you install Java 3D into the JRE and put JOGL on your CLASSPATH, the JoglPipeline will fail to find the JOGL classes.

### 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.