Java 3D 1.3.2 Release Notes

## Java 3DTM 1.3.2 Release Notes

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

System Requirements (Solaris/Sparc, Linux, Windows)
Changes Since 1.3.1
More Information

Click here for instructions on how to install the developer's release of Java 3D version 1.3.2.

NOTE: It is recommended that any previous version of Java 3D be uninstalled before installing this version.

### System Requirements

The 1.3.2 version of the Java 3D API has been released for Solaris/Sparc, Linux (both x86 and amd64), and Windows.

#### Solaris/Sparc

The 1.3.2 version of Java 3D for Solaris/SPARC requires the following:

- JDK 1.4.2 or later from Sun Microsystems: http://java.sun.com/j2se/
- Solaris 8 or later
- Frame Buffer with OpenGL support (XVR-500, XVR-1000, XVR-600, XVR-1200, XVR-4000, Expert3D, Elite3D, Creator3D, and PGX)
- 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/

#### Linux

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

- JDK 1.4.2 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.2 or later

#### Windows

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

- JDK 1.4.2 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.1 or later, available from Microsoft or from your graphics card manufacturer.

DirectX version

The (optional) DirectX renderer of Java 3D requires DirectX 8.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`"

### Changes Since 1.3.1

#### Miscellaneous

- Improved the speed and quality of scene antialiasing (from 2 samples to possibly 8 samples) if pbuffer is supported
- Eliminated memory bloat for IndexedGeometryArrays with USE_COORD_INDEX_ONLY flags set
- MouseWheelEvent now supported in WakeupOnAWTEvent, MouseBehavior, ViewPlatformAWTBehavior, and OrbitBehavior
- Wavefront ".obj" loader now properly handles transparency attribute of the model (but not transparency mapping).

#### Java 3D Sound

Java 3D sound is rendered via the use of a concrete implementation of the abstract AudioEngine3DL2 class. In version 1.3.1 we provided two such implementations that could be used to render 3D sounds: JavaSoundMixer and HeadspaceMixer. The 1.3.2 release no longer includes the HeadspaceMixer implementation. Only JavaSoundMixer is available, and it is disabled by default for users of the Viewer.createAudioDevice() method (see the j3d.audiodevice property below).

#### System Properties

- `j3d.rend` - Specified the renderer that will be used for Java 3D. Recognized values are "ogl" and "d3d" (Windows-only). The default value is "ogl".
- `j3d.viewFrustumCulling` - If this flag is set to false, the renderer view frustum culling is turned off. The default value is true. Note: Java 3D uses a 2 pass view culling. The first pass is a loose view culling of the spatial tree, and the second pass is a tight view frustum culling in the renderer before sending the geometry down to the low level graphics API. The j3d.viewFrustumCulling property is to control the renderer view frustum culling, and it will not affect the first pass view culling.
- `j3d.transparentOffScreen` - If this flag is set to true the background of the off screen canvas is set to transparent. The default value is false.
- `j3d.usePbuffer` - If this flag is set to false pbuffer will not be use for off screen rendering. The default value is true.
- `j3d.audiodevice` - Takes the name of a concrete subclass of com.sun.j3d.audioengines.AudioEngine3DL2 that will be constructed by Viewer.createAudioDevice(). The default value is null, which means that audio is disabled by default for applications that call Viewer.createAudioDevice(). For more information see the topic on Java 3D Sound in the Java 3D forum.
- `j3d.forceReleaseView` - If this flag is set to true, the view is released after the Canvas3D is removed from the view. Can be used if you have memory leaks after disposing Canvas3D. Note: Setting this flag as true disables the bug fix 4267395 in View deactivate(). The default value is false.

#### Issues Fixed

3 | lg3d: gets unsatisified link error on various ATI cards
4 | Speed of OffScreen Canvas3D
5 | Frequent native exception: Canvas3D.destroyContext
10 | Canvas Redraw Issue
11 | Seemingly inconsistent delays in updating attributes
12 | Frame counter isn't always incremented correctly
13 | J3DTimer fails on Windows XP with P4 3GHz
14 | Random NullPException in uninitialized SoundSheduler
15 | Model Clip planes not correctly set when view changes
16 | Issue with Runtime instantiation of Canvas3D
18 | Geometry missing in OnScreenCanvas when OffScreenCanvas is resized
19 | Resizing off-screen Canvas3D hangs on Solaris
20 | Off-screen rendering doesn't work on Linux
21 | Exception in WakeupOnElapsedFrames behavior stops renderer from running when it should
23 | Enhancement to Reduce Memory Bloat in IndexedGeometryArray
26 | Texture3D not displaying when size over 512X512
27 | Shapes mistakenly culled when they are visible
28 | Combine Mode & Missing Texture in OffScreen snapshot on Win/XP
33 | Texture updates fail w/ Multitextured BY_REF Geoms
36 | Vector3d hashCode() method distinguishes between -0.0 and 0.0
38 | ConfiguredUniverse throws an exception when using Java Web Start
65 | WakeupOnAWTEvent does not support MouseWheelEvent
66 | NullPointerException in renderOffScreenBuffer
71 | OGL: OffScreen canvas ignore GraphicsConfigTemplate under windows
72 | Exception in setOffScreenBuffer when Canvas3D not in View
73 | Quat4f#interpolate: incorrect when q1*q2<0
74 | Texture/color math difference (D3D vs OGL)
76 | OffScreen rendering should use Pbuffer on Windows / OpenGL
77 | Scene antialiasing is disabled on Windows / OpenGL
80 | libj3dcore-ogl.so fails to load on Linux systems without certain GL extensions
81 | SimpleUniverse.cleanup() doesn't dispose of all threads
83 | Deadlock when removing Canvas3D and universe
86 | ModelClip affects Java2D graphics in mixed-mode rendering...
88 | Ambient Lighting corrupted by Mixed-Mode rendering...
91 | add new key/s to Canvas3D.queryProperties() for graphics card info
94 | glCallList error
95 | NullPointerException reading PathInterpolator behavior with SceneGraphFileReader
96 | ViewSpecificGroup documentation needs clarification
98 | Random Lockup when adding a Canvas3D to JTabbedPane
99 | New - Cannot build native bits in j3d-core with Sun Studio 10
100 | Offscreen Capture crash JVM
101 | Memory leak in com.sun.j3d.utils.geometry.Primitive
102 | memory leak:: Canvas3D holds a reference to parent container
103 | Memory leak:: View deactivate not full enabled
104 | Java3D based application fail to start on ATI 8.10 driver
105 | Build for IA64 (Itanium) 64-bit Linux
111 | Java 3D doesn't recognize OpenGL 2.0
112 | Calling Virtual Universe seems to hang

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