Java 3D 1.5.0 Release Notes

## Java 3DTM 1.5.0 Release Notes

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

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

Click here for instructions on how to install this release of Java 3D version 1.5.0.

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

### System Requirements

The 1.5.0 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.0 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.0 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.0 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.0 version of Java 3D for Windows 2000, and Windows/XP (x86 or amd64) 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`

#### Mac OS X

The 1.5.0 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.0

#### New Features / Enhancements

- JOGL Rendering Pipeline
- Non-power-of-two textures: change log
- NIO image buffer support for textures: change log, javadoc
- By-reference support for geometry indices: change log, javadoc
- Rendering error listeners: change log, javadoc
- Vecmath accessors/mutators: change log, javadoc
- Lightweight JCanvas3D utility

#### Issues Fixed in 1.5.0

Issue |  | Description
--- | --- | ---
40 |  | Transparency color not correct on UCIO geometry and OffScreen canvas
75 |  | Memory leak in SetLiveState when branchGroup remove
84 |  | Rendering pauses after Canvas3D disposal until AWT event
85 |  | Optimize the downloading of ARGB textures
92 |  | ImageComponent2D.setSubImage() uses incorrect image sizes
93 |  | ImageComponent2D.setSubImage() does not correctly update the display
113 |  | NPE in updateAlphaInVertexData on multiple screens
121 |  | Stop using finalize() to clean up state
123 |  | Reduce or eliminate use of memory free lists
131 |  | Lightweight Canvas3D
147 |  | Need Windows/amd64 port of Java 3D
152 |  | NPE in updateNodeComponent
160 |  | AlternateAppearance behaves defferently in J3D 1.3.2 comparing to J3D 1.3.1
162 |  | Textures are randomly incorrect in multi-screen mode with LG3D
172 |  | Texture.setImage fails to check ImageComponent sizes when not live
180 |  | Frame-dependent Large Texture Updates leads to OOM Exception
194 |  | Provide NIOBuffer texture components
198 |  | Need more shader example programs
209 |  | PolygonAttributes.isCompiled() returns false after the scenegraph's BranchGroup is compiled.
216 |  | J3DTimer should use clock_gettime on Linux
219 |  | Add support for Non Power of Two textures
220 |  | Matrix3d.set(AxisAngle4d) sets incorrectly if axis vector not normalized
221 |  | UnsatisfiedLinkError if shading language set to Cg on d3d
224 |  | NPE While Toggling Visibility
225 |  | BY_REF Support for CoordinateIndices To Reduce Memory Bloat
227 |  | Serialization problem with vecmath
229 |  | Need to implement JOGL renderer
235 |  | Null Pointer in AttributeBin
238 |  | Exception in thread J3D-MasterControl-1 when setting TextureUnitState to 0-length array
240 |  | Canvas3D.queryProperties reports stencil available even when it is not
241 |  | Texture3D by Reference Fails
244 |  | ClassCastException in Group.setChild
245 |  | Problem with ALLOW_RENDERING_ATTRIBUTES_WRITE in Appearance
246 |  | Move compressed geometry code from core to utils
247 |  | SHADER_ATTRIBUTE_TYPE_ERROR is fired when ShaderAttributeArray is used (OpenGL and GLSL shaders used)
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
252 |  | Offscreen Canvas3D/Screen3D error reporting (pbuffer allocation)
253 |  | Transform3D's incorrectly identified as Affine
260 |  | Obsolete graphics library version kills renderer thread, cannot be detected by app
264 |  | Behaviors that throw an Error cause the BehaviorScheduler to die
266 |  | Canvas3D should throw NPE by default for null graphicsConfig
267 |  | TextureLoader should autodetect alpha and colours
268 |  | Replace native getNumberOfProcessor() with pure Java equiv?
269 |  | GLSL on nVidia cards: Confict of a builtin vertex attribute (named gl_Normal) and a bound generic vertex attribute
275 |  | sleep for setMinimumFrameCycleTime should not hold lock
279 |  | Intermittent hang in MasterControl while running lg3d
283 |  | Add Eclipse plugin defs to manifest
288 |  | Objects in RenderBin free lists keep reference to user data
295 |  | Texture3D throws ArrayIndexOutOfBoundsException when scaleImage
308 |  | WakeupOnElapsedTime occasionally doesn't wake up on elapsed time
311 |  | Broken build for linux on ppc.
312 |  | Exception while detaching ModelClip from ViewSpecificGroup
313 |  | Geometry Stress Test results in OOM Error
318 |  | Cannot build on Itanium Linux
320 |  | Shader Appearance update is asynchronous to transform update
321 |  | bug in vecmath.Matrix3d.set(AxisAngle a1)
323 |  | Deprecate optional detail texture functionality
324 |  | Lockup Java3D program and throw exception using JOGL renderer
325 |  | This Tuple4d is epsilonEquals to all others: (NaN, NaN, NaN, NaN)
326 |  | PrintCanvas3D on JOGL pipeline crashes on Linux and Solaris
327 |  | javadoc for VIew class doesn't list correct clip policy defaults
328 |  | JOGL pipeline : Geometry fails to render in Cosmic Birdie
331 |  | Add .cvsignore file to root of vecmath.
336 |  | Unable to redraw when resizing using JOGL pipeline
338 |  | Bug in glPushAttrib usage in NativePipeline
339 |  | Java crashes when using GLSL shaders
340 |  | Resource leak in setOffScreenBuffer, NPE in JOGL pipeline
341 |  | Initializing audio device using Webstart throws ClassNotFoundException
342 |  | Raster.setDstOffset() set the destination pixel offset in opposite direction
344 |  | Too much time to load image as Texture
349 |  | OffScreen Canvas3D needlessly forces power-of-two for its buffer
351 |  | Need a new mechanism to free D3D surface
352 |  | VC compiler generates warning on Windows AMD64 build
353 |  | GeometryArray Memory Leak
355 |  | IndexedXXXStripArray throws NPE with ByRef Indices
356 |  | Exception in RenderBin when removing a Shape3D with no geometry
358 |  | Document that OGL 1.2 is supported, but at reduced functionality
360 |  | SceneGraphStreamWriter.writeBranchGraph throws exception
366 |  | Raster appears without image on systems without NPOT support
367 |  | Clip throws NPE in case of region = null in a live scene
368 |  | Background texture doesn't work on system with no NPOT support
370 |  | Deadlock when calling Raster.setimage from user thread
371 |  | Poor raster quality for systems that don't support NPOT textures
372 |  | ImageComponent.set(BufferedImage) ignored when used by Raster
373 |  | ImageComponent.set(BufferedImage) ignored when used by Background
374 |  | Exception when calling Background.setImage on live scene graph
379 |  | Needs NPOT support documented in Texture, Texture3D and TextureCubeMap
380 |  | NPE when uncheck Show Color Texture in Dot3 demo
383 |  | JCanvas3D's offscreen Canvas3D is inverted.
392 |  | Texture loading regression for optimized RGB PNG files
393 |  | TextureLoader regression on BufferedImage.TYPE_BYTE_INDEXED
395 |  | JCanvas3D / JOGL: Program freezes
400 |  | Lighting differs with various renderers
403 |  | AssertionError while changing (offscreen) Texture size

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

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