Java 3D 1.3 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. 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

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.


  • 4464766 Java3d1.2.1_02 cannot be uninstalled due to an error when installed with jdk14


  • 4386872 Docs for Behavior.postId is too terse
  • 4501813 Documentation should state that AA lines/points are rendered as transparent
  • 4702908 OrbitBehavior class overview says to call non-public method

Core Graphics and Vecmath

  • 4366511 OGL: Multisampling does not support under windows for fullscene antialiasing
  • 4468303 javax.vecmath.Tuple3d serialVersionUID not compatible
  • 4661574 D3D : setValidVertexCount on byRef quad array is not working right
  • 4663280 D3D: multitextue not work in jtest.essential.SimpleLeaf.MorphBasicTest1
  • 4664809 FullScene antialiasing disable under wildcat III even though driver enable it
  • 4667098 Windows-apps/Enigma: keyboard panel flashes when box is rotated / key is pressed
  • 4667539 IllegalMonitorStateException throws from Renderer if other Exception happen
  • 4669051 setValidVertexCount has performance issues
  • 4671012 Incorrect multipass Texture if TextureUnitState[] not contiguously enable
  • 4672391 ImageComponent2D/3D getImage() throws ClassCastException for non BufferedImage
  • 4672530 Deadlock when using WakeupOnTransformChange
  • 4678251 Texture attributes and TexCoordGen mode sometimes fail to apply
  • 4678932 setPointAntialiasingEnable will turn z buffer off even though surface is drawn
  • 4679787 Antialias Polygon Line and Polygon Point mode are classify as opaque
  • 4683152 ClassCast exception in core when setAutoComputeBounds(false)
  • 4684982 At setLive(), if boundsAutoCompute is false, j3d's bounds didn't set correctly
  • 4685156 Crash under Linux Nvidia driver if texture destory without a non-shared ctx
  • 4685686 Raster Image flicking and NullPointerException throws when CLIP_IMAGE is used
  • 4685682 NullPointerException when clone Appearance with TextureUnitState
  • 4685691 setupMirrorInterleavedColorPointer throws ArrayIndexOutOfBoundsException
  • 4686650 Transform3D.setTranslation() does not classify correctly
  • 4684150 Lock up when using J3DGrpahics2DImpl
  • 4687351 Polygon line width/point size may drawn larger than expected in some case
  • 4691511 REGRESSION: setConstantScaleEnable(true) does not work on 1.3 beta2
  • 4691654 State change that causes displaylist to be rebuilt may result in missing geometr
  • 4686766 Deadlock when same geometry share by different VirtualUniverse is updated
  • 4693468 Incorrect Texture display after Texture object GC
  • 4698695 Appearance may mess up when Material is shared by geometries w and w/o normal.
  • 4693307 TRANSPARENCY_SORT_GEOMETRY : State update may cause Shape3D to lose geometry
  • 4703460 Update of J3DGraphics2D damage extent is not MT-Safe
  • 4475677 Current Sensor hotspot semantics are broken
  • 4690060 OGL: Texture Transform affects Background Image
  • 4697067 BoundingPolytope doesn't report intersection
  • 4701430 Infrequent NPE at


  • 4655850 Fail to initialze BUFFERED_AUDIO_DATA sound
  • 4656948 Deadlock between SoundSchduler and TimerThread
  • 4656955 programs/other/SoundExamples/TestMediaContainer throws ClassCastException


  • 4666597 GeometryInfo: getIndexedGeometryArray() ignore useCoordIndexOnly parameter
  • 4678136 SceneGraphIO API - UseSuperClassIfNoChildClass implementation incomplete
  • 4682760 SceneGraphIO node references not resolved before user code called
  • 4683145 Extra null geometry added to Shape3D when loading j3f
  • 4690159 dublicateOnCloneTree flag not save in SceneGraph IO NodeComponentState
  • 4702256 ViewingPlatform.setViewPlatform() doesn't add ViewPlatform to TransformGroup