Java 3D API version 1.4 Change Log

Here are the proposed changes for Java 3D version 1.4. These proposed changes are a results of discussion and collaboration with the Java 3D community on java.net (see https://java3d.dev.java.net). They are already part of daily and periodic stable builds available on java.net.

I. Proposed Changes


II. Accepted Changes

Here is the list of accepted changes for the Java 3D 1.4 API:

  1. Programmable shader support
  2. Default values for read capability bits
  3. Picking
  4. Stencil
  5. Rendering attributes
  6. Other minor features
  7. Deprecated API

For a complete description of these changes, please see the proposed API specification (javadoc) for the 1.4 version of the Java 3D API.

1. Programmable shader support

We propose to add programmable shader support to Java 3D 1.4. This is the primary new feature of this release.

The following new classes and interfaces are added in the javax.media.j3d package:

The following new classes are added in the javax.vecmath package:

The following new fields, constructors, and methods are added to existing classes:

The following new constructors are added to existing GeometryArray subclasses:


2. Default values for read capability bits

Capability bits control whether data in a Java 3D scene graph object may be read or written when it is part of a live or compiled subgraph. We propose to change the default value for all read capability bits to true, meaning that all attributes may be read by default (the default value for all write capability bits will remain false, meaning that no attributes may be written by default). Note that read capability bits are defined as those capability bits of the form ALLOW_*_READ, plus the ALLOW_INTERSECT capability bit.


3. Picking

We propose to add a new PickInfo class (with an inner class to hold intersection information), and new core picking methods that return objects of this new class type.

New Classes:

New methods:


4. Stencil

We propose new stencil functionality. Here are the proposed new fields and methods:


5. Rendering attributes

We propose to add new rendering attributes/modes to enable applications to specify the depth test function, additional raster operations, and additional blending modes. The new fields and methods are as follows:


6. Other minor features

We propose to add the following new features: a name for all scene graph objects; the ability to get the Locale or parent from a live or compiled scene graph, a scene graph structure change listener, and a method to get the tessellated glyph geometry for a character in a 3D font.

The following new class has been added:

The new fields and methods are as follows:


7. Deprecated API

We propose to deprecate the following classes:

We propose to deprecate the following fields and methods:


III. Deferred Changes