1.3.1 API Features


The Java 3D API is a full featured 3D graphics API that can be used to create high performance 3D graphics applications from within the Java platform. The Java 3D API has many usefull features. For an overview of the many features of Java 3D, please refer to the main Java 3D API web page.

There are also a number of new features in Java 3D 1.3.1. The list below is a short summary of the new features in this release.

New rendering functionality:

  • ViewSpecificGroup: Support for per-view objects
  • Ability to scale background images
  • Changes in semantics of background geometry
  • Behavior synchronization
  • Scale invariant OrientedShape3D
  • OrderedGroup indirection table

New geometry functionality:

  • Raster destination pixel offset
  • GeometryArray enhancements
  • NIO Buffer Support for Geometry

New texture functionality:

  • TexCoord4f object to support projective textures
  • Texture LOD control
  • Ability to modify ImageComponent subimage
  • Support for texture boundary
  • Texture environment combiner support
  • Texture cube environment mapping
  • Additional texture filtering options

New appearance functionality:

  • Depth-sorted transparency
  • Ability to choose color target for per-vertex colors

New audio functionality:

  • New reverb and environmental parameters

Other new functionality:

  • Cloneable vecmath classes
  • Ability to pause alpha-based interpolators
  • Method to get global properties
  • New J3DGraphics2D draw and flush image method
  • New capability frequency hints
  • New methods is added to the Viewer to support dynamic video resize

API cleanup:

  • Font3D object reparented to NodeComponent
  • New IllegalSceneGraphException class
  • New TransformInterpolator class
  • New picking intersect method
  • Added missing get methods
  • Added missing capability bits
  • Added missing collection-like methods
  • Increased ability to share NodeComponents
  • Hierarchical scoping of compiled Group nodes
  • Fix semantic problems with Sensor hotspot

For more information on any of these new features, please refer to the Java 3D API specification documentation, or Java 3D API documentation.

This release also fixes a number of bugs. Here is a list of the bugs fixed in this release.

Core Graphics and Vecmath

  • 4685686 Apps Particles sometimes throws ArrayOfBoundsException at GeometryArrayRetained
  • 4794994 Memory leak when SharedGroup removed
  • 4792478 ArrayIndexOutOfBoundsException with two ViewSpecificGroups with Lights
  • 4793926 Incorrect collison report when geometry close to each other
  • 4794382 NullPointerException if SharedGroup not set in Link under SwitchGroup
  • 4798443 RenderBin findOrderedCollection throws IndexOutOfBoundsException
  • 4800640 D3D: Garbage line appear in TexCubeMap negative & postive Y surface
  • 4805797 View setLocalEyeLightingEnable() does not work
  • 4807209 View setMinimumFrameCycleTime() fail to free CPU time for other applications
  • 4809037 OGL: glLockArrayEXT() should invoke after vertex pointer defined
  • 4826575 J3D fail to run on JDK1.5
  • 4829457 Missing object when lighting change in SDSC ExHenge
  • 4829458 Texture stage fail to disable in accelerated mode for multiTexture apps
  • 4836232 TextureUnitState setTextureAttributes() & setTexCoordGeneration() may not work
  • 4838311 D3D: TextureAttributes in texture stage need to reset for multitexture
  • 4839757 OGL: Incorrect rescale normal extension use for non-uniform scale
  • 4840952 TransformGroupRetained throws NullPointerException if sharedGroup link set null
  • 4843212 AWTEvent disable if canvas remove from panel and add back later after SG Live
  • 4843221 GraphicsContext3D flush(true) hangs for non-visible Canvas3D
  • 4846822 NullPointerException in MasterControl addFreeImageUpdateInfo


  • 4331669 setRectangleScaleFactor will not change text size unless setString called (doc?)
  • 4780878 ConfiguredUniverse needs a way to access multiple behaviors
  • 4801176 Sphere Texture map reverse when GENERATE_NORMALS_INWARD is used
  • 4803241 EdgeTable & Edge.java use by NormalGenerator missing in java3d-utils-src.jar
  • 4822946 Picking throws NullPointerException for BoundingBox/Sphere/Polytope PickShape
  • 4822988 SceneGraphIO throws NullPointerException when Morph Node is read
  • 4827900 TransformInterpolatorState source missing in j3d-utils-src.jar
  • 4830842 Triangulator fails for polygons with holes in YZ or XZ plane