We are about to begin the release process for Java 3D 1.2.1,
and that has been taking about two weeks.  So the Beta version
of 1.2.1 should be out by mid October.

As far as changes, mainly bug fixes and performance enhancements.

Attached are the README's for 1.2.1.


Rob Posadas

Manager, 3d Graphics Software
Sun Microsystems
[EMAIL PROTECTED]
(650) 786-7873




> 
> Hi all
> 
> i only want to remind the sun team, that the below mail from Mark Ferneau
> has not yet been answered( i did not found current informations to this
> topic in the interest group). It would be great if anybody could give us
> some information about the release Date and the most important changes over
> 1.2!
> 
> thanks a lot
> 
> Alexander Wojnar
> 
> 
> 
> 
> -----Ursprüngliche Nachricht-----
> Von: Discussion list for Java 3D API
> [mailto:[EMAIL PROTECTED]]Im Auftrag von Mark Ferneau
> Gesendet: Monday, September 25, 2000 11:54 PM
> An: [EMAIL PROTECTED]
> Betreff: [JAVA3D] Release Data of 1.2.1 (Beta)
> 
> 
> Can anyone from Sun provide an estimated release date for J3D 1.2.1,
> Beta?  At Siggraph Michael Schulman indicated it would be out this summer
> and, as of last week, we're in Autumn (at least in the US).
> 
> --Mark
> 
> Mark Ferneau                    240-462-6262 (cell)
> Director of Adv. Technology             801-437-4608 (efax)
> Xtivia Technologies, Inc.               732-469-5954 x629 (NJ office)
> [EMAIL PROTECTED]                      301-279-5703 (home office)
> http://www.xtivia.com/          [EMAIL PROTECTED] (wireless email)
> 
> ===========================================================================
> To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
> of the message "signoff JAVA3D-INTEREST".  For general help, send email to
> [EMAIL PROTECTED] and include in the body of the message "help".
Java 3D(TM) 1.2.1 Beta

README file for Solaris/SPARC/OpenGL

This file contains important information for users of Java 3D(TM).
The first four sections (Requirements, Installation, Shared
Contexts, and Running Java 3D(TM) in a Browser) are of interest
to all Java 3D(TM) users.  The rest of this file applies only to
developers of Java 3D(TM) applications.

** It is recommended that any previous version of Java 3D(TM) be
** uninstalled before installing this version.

============
REQUIREMENTS
============

This version of Java 3D(TM) for Solaris/SPARC requires the following:

  Java 2 Runtime or SDK version 1.2.2 or later from Sun Microsystems.
  It is recommended that you use the production release
  (www.sun.com/solaris/java) but you may use the
  reference implementation
  (http://java.sun.com/products/jdk/1.2/download-solaris.html).
  If you are using the reference implementation, you must use
  native threads.  Green threads are not supported.

  Frame Buffer with OpenGL support (Expert3D, Elite3D, Creator3D,
  PGX).

  Solaris 2.7 or later.

  OpenGL 1.2.1 for Solaris or later.
  To find your current version, use `pkginfo -l SUNWglrt`
  OpenGL for Solaris can be obtained at
  http://www.sun.com/solaris/opengl

  PATCHES

  There are no patches required for Solaris 8.

  Solaris 7 requires the Kernel Update patch (106541-06 or later)
  which fixes a bug on multi-processor systems that can lock up
  the window system when running a Java 3D program with more than
  one active window:

  Use `showrev -p` to list installed patches.  Patches can be
  downloaded for free from http://sunsolve.sun.com/.

============
INSTALLATION
============

You must have permission to write files in your Java(TM) Runtime
Environment and/or SDK directories.  If you do not have this
permission, the installer will run to completion but Java 3D(TM)
will not be installed.  Make sure you are running Java(TM) from
your local machine and that you are the same user who installed
Java.

To install Java 3D(TM), execute the Java 3D(TM) GUI Installer
program from any directory:

   Runtime only:      java3d1_2_1beta1-solsparc-rt-ia.bin
   Runtime and SDK:   java3d1_2_1beta1-solsparc-sdk-ia.bin

After accepting the license agreement and viewing this file,
you will be asked to select which Java(TM) VM to upgrade
with Java 3D(TM).  JVMs from your PATH will be listed, or
you may choose a different one by selecting its 'java'
executable.

After installation, you may remove the executable GUI installer.

The Java 3D(TM) SDK includes several demo programs that can
verify correct installation.  Assuming your Java 2 SDK is installed
at ~/j2sdk1.3.0_01, try the following:

        cd ~/j2sdk1.3.0_01/demo/java3d/HelloUniverse
        java HelloUniverse

        Note: Many more demos are available under the demo/java3d/
              directory.  Some of the demos require a maximum memory
              pool larger than the default in java.  To increase the
              maximum memory pool to 64 megabytes, add the following
              command line options to java or appletviewer:
                  java: -mx64m
                  appletviewer: -J-mx64m

Make sure you have the SUNWi1of package (optional fonts) installed by
running `pkginfo SUNWi1of`.  If not present, you may see error messages
like this:

    Font specified in font.properties not found
    [-b&h-lucida sans typewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1]
    ...

Java 3D(TM) consists of four jar files and two shared libraries.
You do not need to include the jar files in your CLASSPATH,
nor do you need to include the shared libraries in your PATH.
You should include "." in your CLASSPATH or ensure that CLASSPATH
is not set.

Java 3D documentation and tutorials are available from the Java 3D(TM)
Home Page: http://java.sun.com/products/java-media/3D/

===============
SHARED CONTEXTS
===============

This version of Java 3D is able to use shared contexts in OpenGL for Display
Lists and Texture Objects.  For single canvas applications, there will be no
change in behavior.  For multiple canvas applications, memory requirements
will decrease by using this property.  To enable the use of shared contexts
set the j3d.sharedctx property to true, for example:

    java -Dj3d.sharedctx=true MyProgram


================================
RUNNING JAVA 3D(TM) IN A BROWSER
================================

Java 3D programs can be run in Netscape Communicator on Solaris
with the Java(TM) Plug-IN (JPI) installed:

  Solaris 8 includes Netscape and the JPI.

  For Solaris 7 users, Netscape Communicator may be downloaded
  for free from http://www.sun.com/solaris/netscape.  Patches
  may be required (see the website for details).

  Netscape Communicator 6.0 automatically includes the JPI.

  Java 1.3 also includes the JPI.  The Control Panel will
  be at ~/j2sdk1.3.0_01/jre/ControlPanel.html.

  If you are using Solaris 7, Java 1.2.2, and Netscape 4.51, 4.7,
  or 4.74, you need to download and install the JPI from
  http://www.sun.com/solaris/netscape/jpis.  NOTE: requires
  membership to the JDC.  More patches may be required
  (see the website for details).  If you install it in
  the default location (/opt/NSCPcom) the control panel
  will be at file:/opt/NSCPcom/j2pi/ControlPanel.html.

You need to set the NPX_PLUGIN_PATH environment variable
to the directory containing the JPI.  For example, you you
are using the JPI from Java 1.3 installed in ~/j2sdk1.3.0_01,
do 'setenv NPX_PLUGIN_PATH ~/j2sdk1.3.0_01/jre/plugin/sparc'
before starting Netscape.  The default is /opt/NSCPcom.

There is a bug in the Solaris JPI 1.2.2 that keeps it
from finding Java extensions in the lib/ext/ directory
where they are kept.  If you are not using JPI 1.3, you need to
copy the four .jar files from the lib/ext/ directory to the
lib/ directory as follows:

    cd $SDKHOME/jre/lib/ext
    cp j3daudio.jar ..
    cp j3dcore.jar ..
    cp j3dutils.jar ..
    cp vecmath.jar ..

To verify proper installation, point your browser to
file:/home/myhome/j2sdk1.3.0_01/demo/java3d/index.html

If it seems like Java 3D isn't installed, make sure the JPI
is using the JVM you've upgraded with Java 3D(TM).  Run the
JPI Control Panel and click on the "Advanced" tab to change
the JVM associated with the JPI.  Under "Java Run Time
Environment" choose "Other..." and Enter the path to your
JVM in the 'Path:' box (for example,
/home/myhome/j2sdk1.3.0_01/jre).  Press "Apply."  (Note:
choose the directory above the 'bin' directory.)

NOTE: Many Java 3D(TM) programs will require a larger heap size
than the default 16M in the JPI.  In the Control Panel
"Java Run Time Parameters" put "mx64m" for 64M of heap memory.

To create a web page with Java 3D, you need to use special HTML
code to force the browser to use the JPI VM.  Refer to the
following URL for information on using Java Plug-In "HTML
Converter" and running applets using Java Plug-in:

        http://java.sun.com/products/plugin/

====================================================
DISTRIBUTING Java 3D(TM) WITH YOUR JAVA(TM) PROGRAMS
====================================================

Sun Microsystems allows vendors to distribute the Java 3D(TM) Runtime
environment with their Java programs, provided they follow the terms
of the Java 3D(TM) Evaluation License agreement.

This document uses the term "vendors" to refer to licensees,
developers, and independent software vendors (ISVs) who license and
distribute Java 3D(TM) with their Java programs.

REQUIRED vs. OPTIONAL FILES
---------------------------
Vendors must follow the terms of the Java 3D(TM) Evaluation License
agreement, which includes these terms:

 - Don't arbitrarily subset Java 3D(TM). You may, however, omit those
   files that have been designated below as "optional".

 - Include in your product's license the provisions called out
   in the Java 3D(TM) Evaluation License.

BUNDLING Java 3D(TM)
--------------------
Java 3D(TM) comes with its own installer that makes it suitable for
downloading by end users. Java(TM) application developers have the
option of not bundling Java 3D(TM) with their software.  Instead,
they can direct end-users to download and install the Java 3D(TM)
software themselves.

Required Files
--------------

When bundling Java 3D(TM) with your application, the following files
must be included (Solaris):

        <JREDIR>/lib/sparc/J3D.so
        <JREDIR>/lib/sparc/j3daudio.so
        <JREDIR>/lib/ext/vecmath.jar
        <JREDIR>/lib/ext/j3dcore.jar
        <JREDIR>/lib/ext/j3daudio.jar
        <JREDIR>/lib/ext/j3dutils.jar

Optional Files
--------------

An application developer may include these files and directories
with their Java 3D(TM) application, but is not required to do so:

        <JDKDIR>/j3d-utils-src.jar
        <JDKDIR>/demo/java3d


========================
CHANGES SINCE 1.2
========================

==========
BUGS FIXED
==========

Documentation
-------------
4199091 Raster object uses the alpha value inside the image to perform
        blend operation
4354497 Locale pickAll() param description incorrect

Example Programs
4212805 ReadRaster test program has race condition
4367277 OffScreenTest example program does not work consistently

Graphics
--------
4186219 Geometry Collision does not implement points/surface, line/line, or
        line/point
4250253 GeometryInfo leaks memory in some cases (with Appearance?)
4309059 background geometry appears very close to the camera vs 1.1.3
4315058 VolRend display white cube when Axis Volumne is 3D
4331434 adding object to itself does not generate an exception
4332530 Win32 Stereo: zbuffer not cleared when rendering right eye
4333846 JavaPresents intermittently throws IndexOutOfBoundsException
4335205 WakeupOnCollision fail if arming Node is TransformGroup which undergo
        transform
4335969 Memory leak when Branch/View/Canvas3D remove
4335549 ImageComponent2D not live when under Background Node
4336263 Automatic texture generation eye linear fail when switch back
        from object linear
4337095 Collision detection did not work sometimes when modify interactively
4337665 Geometry by reference using interleaved & color with alpha may crash
        system
4337832 removeNotify throws NullPointerException when parent is null
4337953 GeometryByReference with Interleaved array don't support multi-texture
4337966 GeometryArray initialVertexIndex is ignore in non-interleaved array
4338168 Behavior Scheduler should stop when all behaviors are disabled
4339211 fail to enable multitexture 1st time textureUnitState is set after sg
        setLive
4339293 JVM Segmentation fault if depth Component not set in Raster
        under v1.2.2-001
4340879 TUS fails to update transform change on some geometries added live
        BranchGroup.
4340882 WakeupOnElapsedTime can't enable again after disable
4340979 Device Context not release in NativeConfigTemplate3D
4341212 isGraphicsConfigSupported() not yet implemented
4341229 Mixed mode rendering causes scene graph to render continuously
4341273 geometry not rendered properly when multiple texCoordSet is specified
4341689 SimpleGeometry example throws UnsatisfiedLinkError
4343019 changing transparency attribute doesn't work
4343160 J3d resources not freed up properly causing memory leak
4344890 WakeupOnCollisionMovement should not triggered when collision
        object not move
4344920 Picking fails the second time for objects under share group
4345204 memory leak in when repeating create/destroy canvas3d
4346877 Tetxure By Reference and Raster by Reference does not work in
        PureImmediate mode
4347496 Offscreen and ReadRaster requires a getImage() when using byRef
        imagecomponent
4348626 Clip node application bound not updated when transform is changed
4348861 Geometry intersection fail to return collision in some orientation
4351033 NullPointer exception in MasterControl when running scene graph
        viewer
4351100 Two copies of objects appear when branch detach and reattach to
        scene graph
4352652 ModelClip fail to clip correctly in the first frame
4352667 Adding/removing canvas from view/panel makes geometry disappear
4353135 Display list initialize two times for Geometry
4354150 examples/PickTest/IntersectTest renders nothing
4354529 In a Universe with Multiple Locales transformGroup changes
        are not rendered
4354578 DisplayList ID may invoke to draw geometry before it is created
4354666 SharedAlternateTargetTest throws NullPointer exception when detach
        share group
4354751 transform ignored
4355101 ManySphere_Pure bad flickering
4355357 TexGen w/ EYE_LINEAR doesn't work properly with multitextures
4355441 Text3D disappeared
4355443 switch children may be incorrectly merged after compilation
4355908 depth write enable mask not reset correctly after rendering
        transparent objects
4356240 repeatedly reloading an applet causes browser to hang
4357625 java3d fail to resume rendering after window deiconify
4357935 Memory leak when branchgroup remove
4357974 Mouse behavior no longer work after replaceBranchGraph
4358710 directional light unexpectedly moved with the scene in immediate
4359757 Applet reload will throws InternalError after 32 times
4360546 Stereo separation different between 1.2 and 1.2.1
4360588 Reepated add and removal of BranchGraphs to locale causes exception
4360823 NullPointerException in LightRetained.clearLive
4360849 NullPointerException when using moveTo()
4361889 isGraphicsConfigSupported() return incorrect result under windows
        opengl version
4361988 MultiLocale test throws ArrayIndexOutOfBoundsException
4362044 DrawingSurfaceAWT Lock did not free, cause memory leak when canvas
        reloaded
4362302 When a BranchGroup containing a texture is detached the
        ImageComponent is Live
4362355 Picking fails once SceneGraph is compiled
4362374 ManySpheres_Pure intermittently crashes the JVM when run w/ dual cpu
4362773 Mutiple Locales do not behave properly in Java3D
4362907 compile() breaks examples/PickTest/IntersectTest program
4363084 ArrayIndexOutOfBoundsException in NormalGenerator
4363148 NullPointerException with sharedGroup under switch during setLive
4363269 Applet hangs sometimes when repeating reload
4363279 J3D crash under AFB/FFB after reload 32 times
4363875 Interpolator loopCount no longer works
4364572 D3D: Texture transform for translation or combine with TexCoordGen
        did not work
4365111 texture not rendered correctly in immediate mode
4365133 RenderBin throws ClassCastException when OriS3D shared Appearance
        with another S3D
4365139 OriS3D's orientedtransform didn't get applied when OS3D shared
        appearance w/a S3
4365170 OrientedShape3D throws NullPointerException on text with spacing in it
4366359 Objects incorrectly rendered when adding/deleting from the scenegraph
4366775 RenderBin sometimes throws NullPointerException when object insert to
        scenegraph
4366915 Shape missing when branchgraph attach/detach if there are multiple
        LightBin
4367085 MultiScreens example program only renders on screen 0
4367212 MultiScreen test sometimes throws NullPointerException when startup
4367563 Incorrect reference of Canvas3D in Renderer
4367616 incorrect vwcBounds for LOD switch objects
4367891 D3D: crash when vertexbuffer is used in some test case
4367949 Off-screen rendering sometimes returns old image
4368116 D3D: sometime crash when GeometryByReference non-interleaved array
        use
4368117 D3D: crash when DecalGroup is used
4315021 Robot test fail to pick object under windows

Sound
-----
4334767 examples/MoveAppBoundingLeaf sometimes produces no sound
4347519 BackgroundSound did not check for scheduling Bounds
4360447 Sound nodes shared by 2 universes throws exception
4360448 MediaContainer.setURLString() sets url field
4360451 Sound.setSoundData() with a new MediaContainer is ignored
4360454 MediaContainer.setURL() with new URL is ignored
4360461 Filtering only performed on non-cached MediaContainer
4360462 setMediaContainer(InputStream) not loaded on audio device
4368186 Reattaching sound node restarts previously enabled sound

Utilities
---------
4309080 investigate whether TextureLoader should use drawImage vs PixelGrabber
4328532 Textures for the bottom of cones and cylinders are upside-down
4336095 Picking using GEOMETRY_INTERECT_INFO fail on fan and
        strip geometry
4336628 Simple Universe returns incorrect viewingPlatform
4345865 Incorrect callback argument in MouseZoon/MouseRotate
4347996 PickCanvas setTolerance has no effect if it call after
        setShapeLocation
4358065 GeometryInfo methods scope too restrictive
4363154 Sphere sharing cause problem in compile mode
4363208 Picking util. can miss the closet geometry, when multiple S3Ds are
        intersected
4364128 Non-uniform scale not implemented in
        RotPosScaleTCBSplinePathInterpolator


============
NEW FEATURES
============

All example program now have example.html and example_plugin.html for
use with the plugin feature available with most web browsers.  In addition,
an html page, demo/java3d/index.html now contains links to all demo programs
that can be run as applets.

=======================
Constructing a Canvas3D
=======================

Many Java 3D programs pass null to the Canvas3D constructor.  By doing
this, Java 3D will select a default GraphicsConfiguration that is
appropriate for Java 3D.  However, this is a bad practice, and can lead
to errors when applications try to run in alternate environments, such as
stereo viewing.  Java 3D will now print out a warning if the Canvas3D
constructor is passed in a null argument for the GraphicsConfiguration.

=========
Utilities
=========

This release includes utilities for Java 3D.  These utilities are still
being defined and under development.  Much of the source for these utilities
is also provided.  The API for these utilities may change in future releases.

The following utilities are provided in this release:

        - Java Sound Audio Device
        - Some predefined Mouse based behaviors
        - Picking utilities including predefined picking behaviors
        - Geometry creation classes for Box, Cone, Cylinder, and Sphere
        - A Text2D utility
        - A Universe Builder - SimpleUniverse
        - An Image Loading utility
        - A Normal Generator utility
        - A Polygon Triangulator utility
        - Triangle stripifier
        - Geometry compression utilities
        - Spline-based path interpolators
        - Wavefront .obj loader
        - Lightwave 3D File Loader

===================================
Enabling Stereo with SimpleUniverse
===================================

The SimpleUniverse utility does not, by default, request a
GraphicsConfiguration that is capable of Stereo rendering.  To enable this,
you need to set a property when running your application.  Here is an
example.

java -Dj3d.stereo=PREFERRED MyProgram

Some framebuffers only have one Z buffer and share this between the left
and right eyes.  If you are experiencing problems using stereo try the
following property:

java -Dj3d.stereo=PREFERRED -Dj3d.sharedstereozbuffer=true MyProgram


==============
KNOWN PROBLEMS
==============

Documentation Bugs
------------------
4161432 Transform3D transform definitions are imprecise with respect to
        mirror transform
4181456 make Sensor.setSensorReadCount MT-safe
4259353 documentation for com.sun.j3d.utils.geometry.Box is confusing
4284971 Specify that wakeup criteria should not be shared
4284976 Specify that getProjection is illegal in non-compatibility mode
4297142 RotationPathInterpolator has problem if angle equal Math.PI
4303052 Quaternion documentation is inadequate
4303053 javadoc for DistanceLOD with multiple switch nodes needs improvement
4303054 Lighting equations should be updated to reflect color override
4303055 Docs should specify effect on clipped portion of ImageComponent
4303056 Docs should specify thread-safety behavior of Java 3D methodsc
4303062 Need to specify which attributes are passed by reference versus by
        value
4307547 Need to doc. : scene graph needs to have at least a Canvas3D to keep
        j3d working
4310958 Docs should specify wrong bounds may be used in region of influence
        operations
4312421 Need to document texture by reference
4316844 Documentation of Java 3D colors should specify gamma assumptions
4348286 Shape3D intersect() should mention Geometry.ALLOW_INTERSECT need
        to be set
4364767 Java3D's render loop doesn't run continuously
4366468 Background Geometry missing documentation


Examples
--------
4296091 Infinite loop in McadPickTestImm postSwap()
4312044 java Viewer reflects only Lightwave objects with depth

Core Graphics & Vecmath
-----------------------
4154445 PathInterpolator's setKnot method does not validate inputs
4160172 Access to some aggregate data is not MT-safe
4179923 ReadRaster does not clip to screen correctly
4181340 Updating the view cache could be a problem if other canvas running
        on same view
4181344 Java 3D cannot handle more than 64 lights
4181349 Need to add Transform to SceneGrphPath hashCode
4181417 Need to add an internal epsilonEquals method for bounds objects
4186182 sceneAntialiasing setting of PREFERRED is ignored
4189092 HEAD_PREDICTOR and HAND_PREDICTOR policies not implemented
4191172 Text3D rendering problems
4193466 GMatrix SVD does not work correctly for some cases
4246325 AWT Event once enable, will not disable when behavior remove
4259345 Text3D does not correctly convert geometry of Japanese-text
4260818 java3d should support stereo graphics automatically
4269784 vecmath.GMatrix.LUD inefficient
4269923 LOD's slow
4299480 readRaster() and waitForOffScreenRendering() will not work if
        threadLimit=1
4305676 Native method error messages not I18N ready
4308591 Text3D objects bounding box not accurate enough
4309925 JCK: BoundingPolytope / BoundingSphere does not return empty bound
        as it should
4313678 Java3D disables invalid lights
4325851 Hardware MultiTexture not supported even though numActiveTexture
        <= supported num
4331646 rendering differences between WIN32 and Solaris platforms
4331677 setWindowResizePolicy(View.VIRTUAL_WORLD) doesn't work
4335245 Raster type RASTER_COLOR_DEPTH did not work as expected
4340598 Morph did not work after setGeometryArrays() in behavior
4340607 Node and NodeComponent's set* methods not synchronized with
        set/clearLive
4342430 Raster write do not clip image if raster offset/size defined
        outside boundary
4342945 non-congruent transform exceptions: error correct or doc?
4343287 Blending not enabled for antialiased lines
4346786 OutOfMemory error when generating 20,000 Box primitives
4348562 GMatrix SVD method incorrect output and throws
        ArrayIndexOutOfBoundsException
4348609 Poor rendering of textures on NT with 16 bit color
4350033 possible conflict between implementation and spec on
        PolygonOffset
4351050 APIs issue : Shape3D and Morph's intersect method.
4351579 APIs issue : Shape3D intersect method -- multiple geometry support
4352922 JFTC: light InfluencingBounds (BoundingSphere) seems to be broken
        on 1.2.1
4355041 JFTC: LOD failed to change level of detail after 1st frame                     
  graphics_si
4355332 Require Thread safe removeChild in BranchGroup
4357843 Picking doesn't handle OrientedShape3D's orientation when doing
        intersect test
4358284 readRaster() ignore StereoMode context
4358700 Geometry intermitantly disappears from scene
4359600 Transform3D returning NaNi
4359609 MediaContainer does not report errors
4359764 Java3D does not support > 32 canvas
4360688 Geometric primitives need to be optimized
4361036 texture mapped quad using geometry by reference doesn't work
4363761 getImagePlateToVworld not synchronized with View
4363884 Alpha that is no longer running still takes up CPU time
4363899 APIs issue : OrientedShape3D's intersect method needs view info
4363990 Texture image and TransformGroup  not update synchronously
4364343 shared objects no longer pickable after re-attaching to scene graph
4364493 Mirror transforms are not always classified correctly
4365165 JVM crashed when similar text is used on both OrientedShape3D
        and Shape3D
4365207 OriS3D's vwcBound computation needs to consider OriS3D's
        orientedtransform
4366060 ObjectFile.load() throws IndexOutOfBoundsException
4366473 Background geometry does not animate
4366494 RenderBin throws exception, possibly related to OrderedGroup under
        Background
4366511 Full screen antialiasing slow under OpenGL
4366528 Text2D rendered out-of-order in OrderedGroup
4368120 D3D: Color attributes change not working if vertex buffer is used
4368396 Geometry flashes

Sound
-----
4138605 using any non-javasound java sound causes severe performance hit
4164181 Sound performance on native threads is bad
4187092 Filtering causes loud, sweeping resonance to be added to most sounds
4187093 Cross-talk cancellation for sound playback in not implemented
4315018 Garbage sound in TestFilter
4348236 No background sound sometimes when startup
4348247 stopView() fail to stop background sound
4360456 PointSound.setPosition() not update unless parent transform modified
4360463 Doppler calculated results in less than expected frequency variation
4367333 programs/other/SoundExamples/ImmediateMode doesn't work correctly

Utility Bugs
------------
4158783 lw3d loader loses textures after pressing the reload button on
        Netscape
4173647 Cannot share Sphere objects of same size between immediate and
        retained mode
4217567 NormalsGenerator only checks the cosine for smoothing
4252349 First viewport may jump when using KeyNavigatorBehavior
4259533 getTexture() throws NullPointerException when using proxies
4308592 texture loader does not scale non-power-of-2 RGBA textures properly
4331669 setRectangleScaleFactor will not change text size unless setString
        called
4336679 In examples/PickTest program, a pick miss can happen on morph object
4343427 Loader interface has no facility to monitor progress of Load Operation
4347998 PickTool pickGeomAllSorted did not compute closest distance for
        PickConeRay
4367699 Lightwave Loader throws NullPointerException when loading data from
        a Stream


Solaris-specific Bugs
---------------------
none

Java 3D(TM) 1.2.1 Beta

README file for Win32/DirectX

This file contains important information for users of Java 3D(TM).
The first three sections (Requirements, Installation, and Running
Java 3D(TM) in a Browser) are of interest to all Java 3D(TM) users.
The rest of this file applies only to developers of Java 3D(TM)
applications.

** It is recommended that any previous version of Java 3D(TM) be
** uninstalled before installing this version.

============
REQUIREMENTS
============

This version of Java 3D(TM) for Windows 98 and Windows 2000
requires the following:

        Java 2 (Runtime or SDK) version 1.2.2 or later from Sun
        Microsystems (http://java.sun.com/jdk/).  This includes
        the Java Plug-In (JPI) to update Java(TM) in your browser.

        DirectX 7.0 or later, available from Microsoft
        (http://www.microsoft.com/directx/default.asp).

============
INSTALLATION
============

You must have permission to write files in your Java(TM) Runtime
Environment and/or SDK directories.  If you do not have this
permission, the installer will run to completion but Java 3D(TM)
will not be installed.  Make sure you are running Java(TM) from
your local machine and that you are the same user who installed
Java.

To install Java 3D(TM), execute the Java 3D(TM) GUI Installer
program from any directory:

   Runtime only:      java3d1_2_1beta1-win32-directx-rt-ia.bin
   Runtime and SDK:   java3d1_2_1beta1-win32-directx-sdk-ia.bin

The installers will upgrade your most recently installed Java
Runtime Environment and SDK.

After installation, you may remove the executable GUI installer.

The Java 3D(TM) SDK includes several demo programs that can
verify correct installation.  Assuming your Java 2 SDK is installed
at \jdk1.3, try the following:

        cd \jdk1.3\demo\java3d\HelloUniverse
        java HelloUniverse

        Note: Many more demos are available under the demo\java3d\
              directory.  Some of the demos require a maximum memory
              pool larger than the default in java.  To increase the
              maximum memory pool to 64 meg, add the following command
              line options to java or appletviewer:
                  java: -mx64m
                  appletviewer: -J-mx64m


Java 3D(TM) consists of four jar files and two shared libraries.
You do not need to include the jar files in your CLASSPATH,
nor do you need to include the shared libraries in your PATH.
You should include "." in your CLASSPATH or ensure that CLASSPATH
is not set.

Java 3D documentation and tutorials are available from the Java 3D(TM)
Home Page: http://java.sun.com/products/java-media/3D/


================================
RUNNING JAVA 3D(TM) IN A BROWSER
================================

You can run Java 3D(TM) programs in your browser.  Java 2(TM)
from Sun includes the Java Plug-In (JPI) to upgrade the Java(TM)
in the browser to Java 2(TM).  To verify proper installation,
point your browser to file:/jdk1.3/demo/java3d/index.html

NOTE: Many Java 3D(TM) programs will require a larger heap size
than the default 16M in the JPI.  Run the Java Plug-In Control
Panel from Start/Programs (JPI 1.2.2) or Start/Settings/Control
Panel (JPI 1.3) and in "Java Run Time Parameters" put "mx64m"
for 64M of heap memory.

To create a web page with Java 3D, you need to use special HTML
code to force the browser to use the JPI VM.  Refer to the
following URL for information on using Java Plug-In "HTML
Converter" and running applets using Java Plug-in:

        http://java.sun.com/products/plugin/

====================================================
DISTRIBUTING Java 3D(TM) WITH YOUR JAVA(TM) PROGRAMS
====================================================

Sun Microsystems allows vendors to distribute the Java 3D(TM) Runtime
environment with their Java programs, provided they follow the terms
of the Java 3D(TM) Evaluation License agreement.

This document uses the term "vendors" to refer to licensees,
developers, and independent software vendors (ISVs) who license and
distribute Java 3D(TM) with their Java programs.

REQUIRED vs. OPTIONAL FILES
---------------------------
Vendors must follow the terms of the Java 3D(TM) Evaluation License
agreement, which includes these terms:

 - Don't arbitrarily subset Java 3D(TM). You may, however, omit those
   files that have been designated below as "optional".

 - Include in your product's license the provisions called out
   in the Java 3D(TM) Evaluation License.

BUNDLING Java 3D(TM)
--------------------
Java 3D(TM) comes with its own installer that makes it suitable for
downloading by end users. Java(TM) application developers have the
option of not bundling Java 3D(TM) with their software.  Instead,
they can direct end-users to download and install the Java 3D(TM)
software themselves.

Required Files
--------------

        <JREDIR>\bin\J3D.dll
        <JREDIR>\bin\j3daudio.dll
        <JREDIR>\lib\ext\vecmath.jar
        <JREDIR>\lib\ext\j3dcore.jar
        <JREDIR>\lib\ext\j3daudio.jar
        <JREDIR>\lib\ext\j3dutils.jar

Optional Files
--------------

An application developer may include these files and directories
with their Java 3D(TM) application, but is not required to do so:

        <JDKDIR>\j3d-utils-src.jar
        <JDKDIR>\demo\java3d


========================
CHANGES SINCE 1.2
========================

==========
BUGS FIXED
==========

Documentation
-------------
4199091 Raster object uses the alpha value inside the image to perform
        blend operation
4354497 Locale pickAll() param description incorrect

Example Programs
4212805 ReadRaster test program has race condition
4367277 OffScreenTest example program does not work consistently

Graphics
--------
4186219 Geometry Collision does not implement points/surface, line/line, or
        line/point
4250253 GeometryInfo leaks memory in some cases (with Appearance?)
4309059 background geometry appears very close to the camera vs 1.1.3
4315058 VolRend display white cube when Axis Volumne is 3D
4331434 adding object to itself does not generate an exception
4332530 Win32 Stereo: zbuffer not cleared when rendering right eye
4333846 JavaPresents intermittently throws IndexOutOfBoundsException
4335205 WakeupOnCollision fail if arming Node is TransformGroup which undergo
        transform
4335969 Memory leak when Branch/View/Canvas3D remove
4335549 ImageComponent2D not live when under Background Node
4336263 Automatic texture generation eye linear fail when switch back
        from object linear
4337095 Collision detection did not work sometimes when modify interactively
4337665 Geometry by reference using interleaved & color with alpha may crash
        system
4337832 removeNotify throws NullPointerException when parent is null
4337953 GeometryByReference with Interleaved array don't support multi-texture
4337966 GeometryArray initialVertexIndex is ignore in non-interleaved array
4338168 Behavior Scheduler should stop when all behaviors are disabled
4339211 fail to enable multitexture 1st time textureUnitState is set after sg
        setLive
4339293 JVM Segmentation fault if depth Component not set in Raster
        under v1.2.2-001
4340879 TUS fails to update transform change on some geometries added live
        BranchGroup.
4340882 WakeupOnElapsedTime can't enable again after disable
4340979 Device Context not release in NativeConfigTemplate3D
4341212 isGraphicsConfigSupported() not yet implemented
4341229 Mixed mode rendering causes scene graph to render continuously
4341273 geometry not rendered properly when multiple texCoordSet is specified
4341689 SimpleGeometry example throws UnsatisfiedLinkError
4343019 changing transparency attribute doesn't work
4343160 J3d resources not freed up properly causing memory leak
4344890 WakeupOnCollisionMovement should not triggered when collision
        object not move
4344920 Picking fails the second time for objects under share group
4345204 memory leak in when repeating create/destroy canvas3d
4346877 Tetxure By Reference and Raster by Reference does not work in
        PureImmediate mode
4347496 Offscreen and ReadRaster requires a getImage() when using byRef
        imagecomponent
4348626 Clip node application bound not updated when transform is changed
4348861 Geometry intersection fail to return collision in some orientation
4351033 NullPointer exception in MasterControl when running scene graph
        viewer
4351100 Two copies of objects appear when branch detach and reattach to
        scene graph
4352652 ModelClip fail to clip correctly in the first frame
4352667 Adding/removing canvas from view/panel makes geometry disappear
4353135 Display list initialize two times for Geometry
4354150 examples/PickTest/IntersectTest renders nothing
4354529 In a Universe with Multiple Locales transformGroup changes
        are not rendered
4354578 DisplayList ID may invoke to draw geometry before it is created
4354666 SharedAlternateTargetTest throws NullPointer exception when detach
        share group
4354751 transform ignored
4355101 ManySphere_Pure bad flickering
4355357 TexGen w/ EYE_LINEAR doesn't work properly with multitextures
4355441 Text3D disappeared
4355443 switch children may be incorrectly merged after compilation
4355908 depth write enable mask not reset correctly after rendering
        transparent objects
4356240 repeatedly reloading an applet causes browser to hang
4357625 java3d fail to resume rendering after window deiconify
4357935 Memory leak when branchgroup remove
4357974 Mouse behavior no longer work after replaceBranchGraph
4358710 directional light unexpectedly moved with the scene in immediate
4359757 Applet reload will throws InternalError after 32 times
4360546 Stereo separation different between 1.2 and 1.2.1
4360588 Reepated add and removal of BranchGraphs to locale causes exception
4360823 NullPointerException in LightRetained.clearLive
4360849 NullPointerException when using moveTo()
4361889 isGraphicsConfigSupported() return incorrect result under windows
        opengl version
4361988 MultiLocale test throws ArrayIndexOutOfBoundsException
4362044 DrawingSurfaceAWT Lock did not free, cause memory leak when canvas
        reloaded
4362302 When a BranchGroup containing a texture is detached the
        ImageComponent is Live
4362355 Picking fails once SceneGraph is compiled
4362374 ManySpheres_Pure intermittently crashes the JVM when run w/ dual cpu
4362773 Mutiple Locales do not behave properly in Java3D
4362907 compile() breaks examples/PickTest/IntersectTest program
4363084 ArrayIndexOutOfBoundsException in NormalGenerator
4363148 NullPointerException with sharedGroup under switch during setLive
4363269 Applet hangs sometimes when repeating reload
4363279 J3D crash under AFB/FFB after reload 32 times
4363875 Interpolator loopCount no longer works
4364572 D3D: Texture transform for translation or combine with TexCoordGen
        did not work
4365111 texture not rendered correctly in immediate mode
4365133 RenderBin throws ClassCastException when OriS3D shared Appearance
        with another S3D
4365139 OriS3D's orientedtransform didn't get applied when OS3D shared
        appearance w/a S3
4365170 OrientedShape3D throws NullPointerException on text with spacing in it
4366359 Objects incorrectly rendered when adding/deleting from the scenegraph
4366775 RenderBin sometimes throws NullPointerException when object insert to
        scenegraph
4366915 Shape missing when branchgraph attach/detach if there are multiple
        LightBin
4367085 MultiScreens example program only renders on screen 0
4367212 MultiScreen test sometimes throws NullPointerException when startup
4367563 Incorrect reference of Canvas3D in Renderer
4367616 incorrect vwcBounds for LOD switch objects
4367891 D3D: crash when vertexbuffer is used in some test case
4367949 Off-screen rendering sometimes returns old image
4368116 D3D: sometime crash when GeometryByReference non-interleaved array
        use
4368117 D3D: crash when DecalGroup is used
4315021 Robot test fail to pick object under windows

Sound
-----
4334767 examples/MoveAppBoundingLeaf sometimes produces no sound
4347519 BackgroundSound did not check for scheduling Bounds
4360447 Sound nodes shared by 2 universes throws exception
4360448 MediaContainer.setURLString() sets url field
4360451 Sound.setSoundData() with a new MediaContainer is ignored
4360454 MediaContainer.setURL() with new URL is ignored
4360461 Filtering only performed on non-cached MediaContainer
4360462 setMediaContainer(InputStream) not loaded on audio device
4368186 Reattaching sound node restarts previously enabled sound

Utilities
---------
4309080 investigate whether TextureLoader should use drawImage vs PixelGrabber
4328532 Textures for the bottom of cones and cylinders are upside-down
4336095 Picking using GEOMETRY_INTERECT_INFO fail on fan and
        strip geometry
4336628 Simple Universe returns incorrect viewingPlatform
4345865 Incorrect callback argument in MouseZoon/MouseRotate
4347996 PickCanvas setTolerance has no effect if it call after
        setShapeLocation
4358065 GeometryInfo methods scope too restrictive
4363154 Sphere sharing cause problem in compile mode
4363208 Picking util. can miss the closet geometry, when multiple S3Ds are
        intersected
4364128 Non-uniform scale not implemented in
        RotPosScaleTCBSplinePathInterpolator


============
NEW FEATURES
============

All example program now have example.html and example_plugin.html for
use with the plugin feature available with most web browsers.  In addition,
an html page, demo/java3d/index.html now contains links to all demo programs
that can be run as applets.

=======================
Constructing a Canvas3D
=======================

Many Java 3D programs pass null to the Canvas3D constructor.  By doing
this, Java 3D will select a default GraphicsConfiguration that is
appropriate for Java 3D.  However, this is a bad practice, and can lead
to errors when applications try to run in alternate environments, such as
stereo viewing.  Java 3D will now print out a warning if the Canvas3D
constructor is passed in a null argument for the GraphicsConfiguration.

=========
Utilities
=========

This release includes utilities for Java 3D.  These utilities are still
being defined and under development.  Much of the source for these utilities
is also provided.  The API for these utilities may change in future releases.

The following utilities are provided in this release:

        - Java Sound Audio Device
        - Some predefined Mouse based behaviors
        - Picking utilities including predefined picking behaviors
        - Geometry creation classes for Box, Cone, Cylinder, and Sphere
        - A Text2D utility
        - A Universe Builder - SimpleUniverse
        - An Image Loading utility
        - A Normal Generator utility
        - A Polygon Triangulator utility
        - Triangle stripifier
        - Geometry compression utilities
        - Spline-based path interpolators
        - Wavefront .obj loader
        - Lightwave 3D File Loader

===================================
Enabling Stereo with SimpleUniverse
===================================

The SimpleUniverse utility does not, by default, request a
GraphicsConfiguration that is capable of Stereo rendering.  To enable this,
you need to set a property when running your application.  Here is an
example.

java -Dj3d.stereo=PREFERRED MyProgram

Some framebuffers only have one Z buffer and share this between the left
and right eyes.  If you are experiencing problems using stereo try the
following property:

java -Dj3d.stereo=PREFERRED -Dj3d.sharedstereozbuffer=true MyProgram


=====================================================
Information on the Direct3D Implementation of Java 3D
=====================================================

  Unsupported Features
  --------------------
  The following features are currently unsupported in the Direct3D
  implementation of Java 3D:
    Line width
    Line antialiasing
    Point size
    Point antialiasing
    RenderingAttributes ROP_XOR
    PolygonAttributes Back face normal flip
    3D Texture
    Texture color table

  Limited Support
  ---------------
  FullScreen antialiasing is supported only if the device returns
  D3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT in its raster capabilities
  list.  (OpenGL supports fullscreen antialiasing if an accumulation
  buffer exists.)

  TransparencyAttributes.TransparencyMode values FASTEST, NICEST and
  SCREEN_DOOR are the same as BLENDED under D3D.

  Texture coordinates outside the range [0,1] when boundaryModeS
  and boundaryModeT are set to CLAMP will not use the Texture Boundary'
  color unless BASE_LEVEL_LINEAR filtering is turned on.

  Only negative polygon offsets are supported.  The limit of this offset
  corresponds to the depth of the z-buffer.

  The vertex count is limited to 65535 vertices per primitive.

  Fullscreen Support
  ------------------------
  The Direct3D implementation of Java 3D can be run in fullscreen mode.
  To start an application in fullscreen mode, use the property j3d.fullscreen.
  The values for j3d.fullscreen are:
    REQUIRED  -   A fullscreen canvas is required. If not available, do not
                  start up the application.
    PREFERRED -   A fullscreen canvas is desired for this invocation of the
                  Java 3D application.  If a fullscreen canvas cannot be
                  created, a windowed canvas is acceptable.
    UNNECESSARY - States that a fullscreen canvas is not necessary for this
                  application.  Create a windowed application (this is the
                  same behavior as not setting this property).

  Example:
    java -Dj3d.fullscreen=REQUIRED HelloUniverse

  Further, an application can be toggled between fullscreen and windowed mode
  by use of the <Alt><Enter> keyboard combination.

  Stereo Support
  --------------
  Java 3D can render in stereo mode on graphics cards that support stereo
  through Direct3D.  To enable stereo for a Java 3D application, use
  the Java 3D property: j3d.stereo.

  For example:
    java -Dj3d.stereo=REQUIRED
  The valid values for the j3d.stereo property are the same as those for the
  j3d.fullscreen property given above.

  Some framebuffers only have one Z buffer and share this between the left
  and right eyes.  If you are experiencing problems using stereo try the
  following property:

  java -Dj3d.stereo=PREFERRED -Dj3d.sharedstereozbuffer=true MyProgram

  NOTE: Direct3D only supports stereo mode for a fullscreen canvas.


  Direct3D Device Selection
  -------------------------
  In order to aid in development and debugging, Java 3D has added a property
  to allow the D3DDevice to use for rendering to be selected.  The property,
  j3d.d3ddevice can have the following values:
    tnlhardware - select a device that supports transform and lighting in
                  hardware, if present.  If no such device is present,
                  a dialog box is displayed to alert the user and the
                  application will exit.
    hardware    - select a Direct3D device that performs hardware
                  rasterization, if present.  If no such device is present,
                  a dialog box is displayed to alert the user and the
                  application will exit.
    emulation   - use Direct3D software emulation.
    reference   - use the Direct3D reference pipeline (only available if
                  the Direct3D SDK is installed).

  By default Java 3D first tries to select a TnLhardaware device, if that fails
  a Hardware device, if that also fails then finally Java 3D selects an
  Emulation device.

  Vertex Buffer optimization
  ---------------------------

  By default, DirectX vertex buffer features are used to increase
  performance whenever the OpenGL display list feature would be
  used.  If there is a problem with your driver's implementation
  of vertex buffers, turn off this optimization:

  -Dj3d.vertexbuffer=false

  Ignored Java 3D Properties
  --------------------------
  The following Java 3D properties are ignored by the Direct3D implementation:
    j3d.sharedctx
    j3d.g2ddrawpixel

==============
KNOWN PROBLEMS
==============

Documentation Bugs
------------------
4161432 Transform3D transform definitions are imprecise with respect to
        mirror transform
4181456 make Sensor.setSensorReadCount MT-safe
4259353 documentation for com.sun.j3d.utils.geometry.Box is confusing
4284971 Specify that wakeup criteria should not be shared
4284976 Specify that getProjection is illegal in non-compatibility mode
4297142 RotationPathInterpolator has problem if angle equal Math.PI
4303052 Quaternion documentation is inadequate
4303053 javadoc for DistanceLOD with multiple switch nodes needs improvement
4303054 Lighting equations should be updated to reflect color override
4303055 Docs should specify effect on clipped portion of ImageComponent
4303056 Docs should specify thread-safety behavior of Java 3D methodsc
4303062 Need to specify which attributes are passed by reference versus by
        value
4307547 Need to doc. : scene graph needs to have at least a Canvas3D to keep
        j3d working
4310958 Docs should specify wrong bounds may be used in region of influence
        operations
4312421 Need to document texture by reference
4316844 Documentation of Java 3D colors should specify gamma assumptions
4348286 Shape3D intersect() should mention Geometry.ALLOW_INTERSECT need
        to be set
4364767 Java3D's render loop doesn't run continuously
4366468 Background Geometry missing documentation


Examples
--------
4296091 Infinite loop in McadPickTestImm postSwap()
4312044 java Viewer reflects only Lightwave objects with depth

Core Graphics & Vecmath
-----------------------
4154445 PathInterpolator's setKnot method does not validate inputs
4160172 Access to some aggregate data is not MT-safe
4179923 ReadRaster does not clip to screen correctly
4181340 Updating the view cache could be a problem if other canvas running
        on same view
4181344 Java 3D cannot handle more than 64 lights
4181349 Need to add Transform to SceneGrphPath hashCode
4181417 Need to add an internal epsilonEquals method for bounds objects
4186182 sceneAntialiasing setting of PREFERRED is ignored
4189092 HEAD_PREDICTOR and HAND_PREDICTOR policies not implemented
4191172 Text3D rendering problems
4193466 GMatrix SVD does not work correctly for some cases
4246325 AWT Event once enable, will not disable when behavior remove
4259345 Text3D does not correctly convert geometry of Japanese-text
4260818 java3d should support stereo graphics automatically
4269784 vecmath.GMatrix.LUD inefficient
4269923 LOD's slow
4299480 readRaster() and waitForOffScreenRendering() will not work if
        threadLimit=1
4305676 Native method error messages not I18N ready
4308591 Text3D objects bounding box not accurate enough
4309925 JCK: BoundingPolytope / BoundingSphere does not return empty bound
        as it should
4313678 Java3D disables invalid lights
4325851 Hardware MultiTexture not supported even though numActiveTexture
        <= supported num
4331646 rendering differences between WIN32 and Solaris platforms
4331677 setWindowResizePolicy(View.VIRTUAL_WORLD) doesn't work
4335245 Raster type RASTER_COLOR_DEPTH did not work as expected
4340598 Morph did not work after setGeometryArrays() in behavior
4340607 Node and NodeComponent's set* methods not synchronized with
        set/clearLive
4342430 Raster write do not clip image if raster offset/size defined
        outside boundary
4342945 non-congruent transform exceptions: error correct or doc?
4343287 Blending not enabled for antialiased lines
4346786 OutOfMemory error when generating 20,000 Box primitives
4348562 GMatrix SVD method incorrect output and throws
        ArrayIndexOutOfBoundsException
4348609 Poor rendering of textures on NT with 16 bit color
4350033 possible conflict between implementation and spec on
        PolygonOffset
4351050 APIs issue : Shape3D and Morph's intersect method.
4351579 APIs issue : Shape3D intersect method -- multiple geometry support
4352922 JFTC: light InfluencingBounds (BoundingSphere) seems to be broken
        on 1.2.1
4355041 JFTC: LOD failed to change level of detail after 1st frame                     
  graphics_si
4355332 Require Thread safe removeChild in BranchGroup
4357843 Picking doesn't handle OrientedShape3D's orientation when doing
        intersect test
4358284 readRaster() ignore StereoMode context
4358700 Geometry intermitantly disappears from scene
4359600 Transform3D returning NaNi
4359609 MediaContainer does not report errors
4359764 Java3D does not support > 32 canvas
4360688 Geometric primitives need to be optimized
4361036 texture mapped quad using geometry by reference doesn't work
4363761 getImagePlateToVworld not synchronized with View
4363884 Alpha that is no longer running still takes up CPU time
4363899 APIs issue : OrientedShape3D's intersect method needs view info
4363990 Texture image and TransformGroup  not update synchronously
4364343 shared objects no longer pickable after re-attaching to scene graph
4364493 Mirror transforms are not always classified correctly
4365165 JVM crashed when similar text is used on both OrientedShape3D
        and Shape3D
4365207 OriS3D's vwcBound computation needs to consider OriS3D's
        orientedtransform
4366060 ObjectFile.load() throws IndexOutOfBoundsException
4366473 Background geometry does not animate
4366494 RenderBin throws exception, possibly related to OrderedGroup under
        Background
4366511 Full screen antialiasing slow under OpenGL
4366528 Text2D rendered out-of-order in OrderedGroup
4368120 D3D: Color attributes change not working if vertex buffer is used
4368396 Geometry flashes

Sound
-----
4138605 using any non-javasound java sound causes severe performance hit
4164181 Sound performance on native threads is bad
4187092 Filtering causes loud, sweeping resonance to be added to most sounds
4187093 Cross-talk cancellation for sound playback in not implemented
4315018 Garbage sound in TestFilter
4348236 No background sound sometimes when startup
4348247 stopView() fail to stop background sound
4360456 PointSound.setPosition() not update unless parent transform modified
4360463 Doppler calculated results in less than expected frequency variation
4367333 programs/other/SoundExamples/ImmediateMode doesn't work correctly

Utility Bugs
------------
4158783 lw3d loader loses textures after pressing the reload button on
        Netscape
4173647 Cannot share Sphere objects of same size between immediate and
        retained mode
4217567 NormalsGenerator only checks the cosine for smoothing
4252349 First viewport may jump when using KeyNavigatorBehavior
4259533 getTexture() throws NullPointerException when using proxies
4308592 texture loader does not scale non-power-of-2 RGBA textures properly
4331669 setRectangleScaleFactor will not change text size unless setString
        called
4336679 In examples/PickTest program, a pick miss can happen on morph object
4343427 Loader interface has no facility to monitor progress of Load Operation
4347998 PickTool pickGeomAllSorted did not compute closest distance for
        PickConeRay
4367699 Lightwave Loader throws NullPointerException when loading data from
        a Stream


Direct3D specific Bugs
----------------------
  Bugs in the NVidia GForce
  --------------------------
  Make sure you have the latest driver, called "Detonator 3":
    http://www.nvidia.com/products.nsf/htmlmedia/detonator3.html

  Line patterns do not work.  A solid line is shown.
  To workaround, use -Dj3d.d3dDevice=Emulation / Reference

  Texture Border color mode does not work.
  To workaround, use -Dj3d.d3dDevice=Emulation / Reference

  The TextureMode "CLAMP" does not work.

Java 3D(TM) 1.2.1 Beta

README file for Win32/OpenGL

This file contains important information for users of Java 3D(TM).
The first four sections (Requirements, Installation, Shared
Contexts, and Running Java 3D(TM) in a Browser) are of interest
to all Java 3D(TM) users.  The rest of this file applies only to
developers of Java 3D(TM) applications.

** It is recommended that any previous version of Java 3D(TM) be
** uninstalled before installing this version.

============
REQUIREMENTS
============

This version of Java 3D(TM) for WindowsNT 4.0,
Windows 98, and Windows 2000 requires the following:

        Java 2 (Runtime or SDK) version 1.2.2 or later from Sun
        Microsystems (http://java.sun.com/jdk/).  This includes
        the Java Plug-In (JPI) to update Java(TM) in your browser.

        OpenGL 1.1 or later, available from Microsoft or from
        your graphics card manufacturer (see below).

        NT 4.0 only: Service Pack 3 or later.

============
INSTALLATION
============

You must have permission to write files in your Java(TM) Runtime
Environment and/or SDK directories.  If you do not have this
permission, the installer will run to completion but Java 3D(TM)
will not be installed.  Make sure you are running Java(TM) from
your local machine and that you are the same user who installed
Java.

To install Java 3D(TM), execute the Java 3D(TM) GUI Installer
program from any directory:

   Runtime only:      java3d1_2_1beta1-win32-opengl-rt-ia.bin
   Runtime and SDK:   java3d1_2_1beta1-win32-opengl-sdk-ia.bin

The installers upgrade your most recently installed Java Runtime
Environment and SDK.

After installation, you may remove the executable GUI installer.

The Java 3D(TM) SDK includes several demo programs that can
verify correct installation.  Assuming your Java 2 SDK is installed
at \jdk1.3, try the following:

        cd \jdk1.3\demo\java3d\HelloUniverse
        java HelloUniverse

        Note: Many more demos are available under the demo\java3d\
              directory.  Some of the demos require a maximum memory
              pool larger than the default in java.  To increase the
              maximum memory pool to 64 meg, add the following command
              line options to java or appletviewer:
                  java: -mx64m
                  appletviewer: -J-mx64m

If, after installation, you get the following error message while
running a Java 3D program:

  java.lang.UnsatisfiedLinkError: no J3D in shared library path

it is most likely because OpenGL and/or the OpenGL GLU utilities are
not installed on the machine.

For information on OpenGL and how to get it, see the OpenGL web page at
http://www.opengl.org/

Java 3D(TM) consists of four jar files and two shared libraries.
You do not need to include the jar files in your CLASSPATH,
nor do you need to include the shared libraries in your PATH.
You should include "." in your CLASSPATH or ensure that CLASSPATH
is not set.

Java 3D documentation and tutorials are available from the Java 3D(TM)
Home Page: http://java.sun.com/products/java-media/3D/

===============
SHARED CONTEXTS
===============

This version of Java 3D is able to use shared contexts in OpenGL for Display
Lists and Texture Objects.  For single canvas applications, there will be no
change in behavior.  For multiple canvas applications, memory requirements
will decrease by using this property.  To enable the use of shared contexts
set the j3d.sharedctx property to true, for example:

    java -Dj3d.sharedctx=true MyProgram


Some video cards, such as the Riva TNT & TNT2, have problems using shared
contexts.  If you are experiencing no rendering, crashes, or no textures
being displayed when shared contexts are enabled, this is the most likely
problem.

================================
RUNNING JAVA 3D(TM) IN A BROWSER
================================

You can run Java 3D(TM) programs in your browser.  Java 2(TM)
from Sun includes the Java Plug-In (JPI) to upgrade the Java(TM)
in the browser to Java 2(TM).  To verify proper installation,
point your browser to file:/jdk1.3/demo/java3d/index.html

NOTE: Many Java 3D(TM) programs will require a larger heap size
than the default 16M in the JPI.  Run the Java Plug-In Control
Panel from Start/Programs (JPI 1.2.2) or Start/Settings/Control
Panel (JPI 1.3) and in "Java Run Time Parameters" put "mx64m"
for 64M of heap memory.

To create a web page with Java 3D, you need to use special HTML
code to force the browser to use the JPI VM.  Refer to the
following URL for information on using Java Plug-In "HTML
Converter" and running applets using Java Plug-in:

        http://java.sun.com/products/plugin/

====================================================
DISTRIBUTING Java 3D(TM) WITH YOUR JAVA(TM) PROGRAMS
====================================================

Sun Microsystems allows vendors to distribute the Java 3D(TM) Runtime
environment with their Java programs, provided they follow the terms
of the Java 3D(TM) Evaluation License agreement.

This document uses the term "vendors" to refer to licensees,
developers, and independent software vendors (ISVs) who license and
distribute Java 3D(TM) with their Java programs.

REQUIRED vs. OPTIONAL FILES
---------------------------
Vendors must follow the terms of the Java 3D(TM) Evaluation License
agreement, which includes these terms:

 - Don't arbitrarily subset Java 3D(TM). You may, however, omit those
   files that have been designated below as "optional".

 - Include in your product's license the provisions called out
   in the Java 3D(TM) Evaluation License.

BUNDLING Java 3D(TM)
--------------------
Java 3D(TM) comes with its own installer that makes it suitable for
downloading by end users. Java(TM) application developers have the
option of not bundling Java 3D(TM) with their software.  Instead,
they can direct end-users to download and install the Java 3D(TM)
software themselves.

Required Files
--------------

        <JREDIR>\bin\J3D.dll
        <JREDIR>\bin\j3daudio.dll
        <JREDIR>\lib\ext\vecmath.jar
        <JREDIR>\lib\ext\j3dcore.jar
        <JREDIR>\lib\ext\j3daudio.jar
        <JREDIR>\lib\ext\j3dutils.jar

Optional Files
--------------

An application developer may include these files and directories
with their Java 3D(TM) application, but is not required to do so:

        <JDKDIR>\j3d-utils-src.jar
        <JDKDIR>\demo\java3d


========================
CHANGES SINCE 1.2
========================

==========
BUGS FIXED
==========

Documentation
-------------
4199091 Raster object uses the alpha value inside the image to perform
        blend operation
4354497 Locale pickAll() param description incorrect

Example Programs
4212805 ReadRaster test program has race condition
4367277 OffScreenTest example program does not work consistently

Graphics
--------
4186219 Geometry Collision does not implement points/surface, line/line, or
        line/point
4250253 GeometryInfo leaks memory in some cases (with Appearance?)
4309059 background geometry appears very close to the camera vs 1.1.3
4315058 VolRend display white cube when Axis Volumne is 3D
4331434 adding object to itself does not generate an exception
4332530 Win32 Stereo: zbuffer not cleared when rendering right eye
4333846 JavaPresents intermittently throws IndexOutOfBoundsException
4335205 WakeupOnCollision fail if arming Node is TransformGroup which undergo
        transform
4335969 Memory leak when Branch/View/Canvas3D remove
4335549 ImageComponent2D not live when under Background Node
4336263 Automatic texture generation eye linear fail when switch back
        from object linear
4337095 Collision detection did not work sometimes when modify interactively
4337665 Geometry by reference using interleaved & color with alpha may crash
        system
4337832 removeNotify throws NullPointerException when parent is null
4337953 GeometryByReference with Interleaved array don't support multi-texture
4337966 GeometryArray initialVertexIndex is ignore in non-interleaved array
4338168 Behavior Scheduler should stop when all behaviors are disabled
4339211 fail to enable multitexture 1st time textureUnitState is set after sg
        setLive
4339293 JVM Segmentation fault if depth Component not set in Raster
        under v1.2.2-001
4340879 TUS fails to update transform change on some geometries added live
        BranchGroup.
4340882 WakeupOnElapsedTime can't enable again after disable
4340979 Device Context not release in NativeConfigTemplate3D
4341212 isGraphicsConfigSupported() not yet implemented
4341229 Mixed mode rendering causes scene graph to render continuously
4341273 geometry not rendered properly when multiple texCoordSet is specified
4341689 SimpleGeometry example throws UnsatisfiedLinkError
4343019 changing transparency attribute doesn't work
4343160 J3d resources not freed up properly causing memory leak
4344890 WakeupOnCollisionMovement should not triggered when collision
        object not move
4344920 Picking fails the second time for objects under share group
4345204 memory leak in when repeating create/destroy canvas3d
4346877 Tetxure By Reference and Raster by Reference does not work in
        PureImmediate mode
4347496 Offscreen and ReadRaster requires a getImage() when using byRef
        imagecomponent
4348626 Clip node application bound not updated when transform is changed
4348861 Geometry intersection fail to return collision in some orientation
4351033 NullPointer exception in MasterControl when running scene graph
        viewer
4351100 Two copies of objects appear when branch detach and reattach to
        scene graph
4352652 ModelClip fail to clip correctly in the first frame
4352667 Adding/removing canvas from view/panel makes geometry disappear
4353135 Display list initialize two times for Geometry
4354150 examples/PickTest/IntersectTest renders nothing
4354529 In a Universe with Multiple Locales transformGroup changes
        are not rendered
4354578 DisplayList ID may invoke to draw geometry before it is created
4354666 SharedAlternateTargetTest throws NullPointer exception when detach
        share group
4354751 transform ignored
4355101 ManySphere_Pure bad flickering
4355357 TexGen w/ EYE_LINEAR doesn't work properly with multitextures
4355441 Text3D disappeared
4355443 switch children may be incorrectly merged after compilation
4355908 depth write enable mask not reset correctly after rendering
        transparent objects
4356240 repeatedly reloading an applet causes browser to hang
4357625 java3d fail to resume rendering after window deiconify
4357935 Memory leak when branchgroup remove
4357974 Mouse behavior no longer work after replaceBranchGraph
4358710 directional light unexpectedly moved with the scene in immediate
4359757 Applet reload will throws InternalError after 32 times
4360546 Stereo separation different between 1.2 and 1.2.1
4360588 Reepated add and removal of BranchGraphs to locale causes exception
4360823 NullPointerException in LightRetained.clearLive
4360849 NullPointerException when using moveTo()
4361889 isGraphicsConfigSupported() return incorrect result under windows
        opengl version
4361988 MultiLocale test throws ArrayIndexOutOfBoundsException
4362044 DrawingSurfaceAWT Lock did not free, cause memory leak when canvas
        reloaded
4362302 When a BranchGroup containing a texture is detached the
        ImageComponent is Live
4362355 Picking fails once SceneGraph is compiled
4362374 ManySpheres_Pure intermittently crashes the JVM when run w/ dual cpu
4362773 Mutiple Locales do not behave properly in Java3D
4362907 compile() breaks examples/PickTest/IntersectTest program
4363084 ArrayIndexOutOfBoundsException in NormalGenerator
4363148 NullPointerException with sharedGroup under switch during setLive
4363269 Applet hangs sometimes when repeating reload
4363279 J3D crash under AFB/FFB after reload 32 times
4363875 Interpolator loopCount no longer works
4364572 D3D: Texture transform for translation or combine with TexCoordGen
        did not work
4365111 texture not rendered correctly in immediate mode
4365133 RenderBin throws ClassCastException when OriS3D shared Appearance
        with another S3D
4365139 OriS3D's orientedtransform didn't get applied when OS3D shared
        appearance w/a S3
4365170 OrientedShape3D throws NullPointerException on text with spacing in it
4366359 Objects incorrectly rendered when adding/deleting from the scenegraph
4366775 RenderBin sometimes throws NullPointerException when object insert to
        scenegraph
4366915 Shape missing when branchgraph attach/detach if there are multiple
        LightBin
4367085 MultiScreens example program only renders on screen 0
4367212 MultiScreen test sometimes throws NullPointerException when startup
4367563 Incorrect reference of Canvas3D in Renderer
4367616 incorrect vwcBounds for LOD switch objects
4367891 D3D: crash when vertexbuffer is used in some test case
4367949 Off-screen rendering sometimes returns old image
4368116 D3D: sometime crash when GeometryByReference non-interleaved array
        use
4368117 D3D: crash when DecalGroup is used
4315021 Robot test fail to pick object under windows

Sound
-----
4334767 examples/MoveAppBoundingLeaf sometimes produces no sound
4347519 BackgroundSound did not check for scheduling Bounds
4360447 Sound nodes shared by 2 universes throws exception
4360448 MediaContainer.setURLString() sets url field
4360451 Sound.setSoundData() with a new MediaContainer is ignored
4360454 MediaContainer.setURL() with new URL is ignored
4360461 Filtering only performed on non-cached MediaContainer
4360462 setMediaContainer(InputStream) not loaded on audio device
4368186 Reattaching sound node restarts previously enabled sound

Utilities
---------
4309080 investigate whether TextureLoader should use drawImage vs PixelGrabber
4328532 Textures for the bottom of cones and cylinders are upside-down
4336095 Picking using GEOMETRY_INTERECT_INFO fail on fan and
        strip geometry
4336628 Simple Universe returns incorrect viewingPlatform
4345865 Incorrect callback argument in MouseZoon/MouseRotate
4347996 PickCanvas setTolerance has no effect if it call after
        setShapeLocation
4358065 GeometryInfo methods scope too restrictive
4363154 Sphere sharing cause problem in compile mode
4363208 Picking util. can miss the closet geometry, when multiple S3Ds are
        intersected
4364128 Non-uniform scale not implemented in
        RotPosScaleTCBSplinePathInterpolator


============
NEW FEATURES
============

All example program now have example.html and example_plugin.html for
use with the plugin feature available with most web browsers.  In addition,
an html page, demo/java3d/index.html now contains links to all demo programs
that can be run as applets.

=======================
Constructing a Canvas3D
=======================

Many Java 3D programs pass null to the Canvas3D constructor.  By doing
this, Java 3D will select a default GraphicsConfiguration that is
appropriate for Java 3D.  However, this is a bad practice, and can lead
to errors when applications try to run in alternate environments, such as
stereo viewing.  Java 3D will now print out a warning if the Canvas3D
constructor is passed in a null argument for the GraphicsConfiguration.

=========
Utilities
=========

This release includes utilities for Java 3D.  These utilities are still
being defined and under development.  Much of the source for these utilities
is also provided.  The API for these utilities may change in future releases.

The following utilities are provided in this release:

        - Java Sound Audio Device
        - Some predefined Mouse based behaviors
        - Picking utilities including predefined picking behaviors
        - Geometry creation classes for Box, Cone, Cylinder, and Sphere
        - A Text2D utility
        - A Universe Builder - SimpleUniverse
        - An Image Loading utility
        - A Normal Generator utility
        - A Polygon Triangulator utility
        - Triangle stripifier
        - Geometry compression utilities
        - Spline-based path interpolators
        - Wavefront .obj loader
        - Lightwave 3D File Loader

===================================
Enabling Stereo with SimpleUniverse
===================================

The SimpleUniverse utility does not, by default, request a
GraphicsConfiguration that is capable of Stereo rendering.  To enable this,
you need to set a property when running your application.  Here is an
example.

java -Dj3d.stereo=PREFERRED MyProgram

Some framebuffers only have one Z buffer and share this between the left
and right eyes.  If you are experiencing problems using stereo try the
following property:

java -Dj3d.stereo=PREFERRED -Dj3d.sharedstereozbuffer=true MyProgram


==============
KNOWN PROBLEMS
==============

Documentation Bugs
------------------
4161432 Transform3D transform definitions are imprecise with respect to
        mirror transform
4181456 make Sensor.setSensorReadCount MT-safe
4259353 documentation for com.sun.j3d.utils.geometry.Box is confusing
4284971 Specify that wakeup criteria should not be shared
4284976 Specify that getProjection is illegal in non-compatibility mode
4297142 RotationPathInterpolator has problem if angle equal Math.PI
4303052 Quaternion documentation is inadequate
4303053 javadoc for DistanceLOD with multiple switch nodes needs improvement
4303054 Lighting equations should be updated to reflect color override
4303055 Docs should specify effect on clipped portion of ImageComponent
4303056 Docs should specify thread-safety behavior of Java 3D methodsc
4303062 Need to specify which attributes are passed by reference versus by
        value
4307547 Need to doc. : scene graph needs to have at least a Canvas3D to keep
        j3d working
4310958 Docs should specify wrong bounds may be used in region of influence
        operations
4312421 Need to document texture by reference
4316844 Documentation of Java 3D colors should specify gamma assumptions
4348286 Shape3D intersect() should mention Geometry.ALLOW_INTERSECT need
        to be set
4364767 Java3D's render loop doesn't run continuously
4366468 Background Geometry missing documentation


Examples
--------
4296091 Infinite loop in McadPickTestImm postSwap()
4312044 java Viewer reflects only Lightwave objects with depth

Core Graphics & Vecmath
-----------------------
4154445 PathInterpolator's setKnot method does not validate inputs
4160172 Access to some aggregate data is not MT-safe
4179923 ReadRaster does not clip to screen correctly
4181340 Updating the view cache could be a problem if other canvas running
        on same view
4181344 Java 3D cannot handle more than 64 lights
4181349 Need to add Transform to SceneGrphPath hashCode
4181417 Need to add an internal epsilonEquals method for bounds objects
4186182 sceneAntialiasing setting of PREFERRED is ignored
4189092 HEAD_PREDICTOR and HAND_PREDICTOR policies not implemented
4191172 Text3D rendering problems
4193466 GMatrix SVD does not work correctly for some cases
4246325 AWT Event once enable, will not disable when behavior remove
4259345 Text3D does not correctly convert geometry of Japanese-text
4260818 java3d should support stereo graphics automatically
4269784 vecmath.GMatrix.LUD inefficient
4269923 LOD's slow
4299480 readRaster() and waitForOffScreenRendering() will not work if
        threadLimit=1
4305676 Native method error messages not I18N ready
4308591 Text3D objects bounding box not accurate enough
4309925 JCK: BoundingPolytope / BoundingSphere does not return empty bound
        as it should
4313678 Java3D disables invalid lights
4325851 Hardware MultiTexture not supported even though numActiveTexture
        <= supported num
4331646 rendering differences between WIN32 and Solaris platforms
4331677 setWindowResizePolicy(View.VIRTUAL_WORLD) doesn't work
4335245 Raster type RASTER_COLOR_DEPTH did not work as expected
4340598 Morph did not work after setGeometryArrays() in behavior
4340607 Node and NodeComponent's set* methods not synchronized with
        set/clearLive
4342430 Raster write do not clip image if raster offset/size defined
        outside boundary
4342945 non-congruent transform exceptions: error correct or doc?
4343287 Blending not enabled for antialiased lines
4346786 OutOfMemory error when generating 20,000 Box primitives
4348562 GMatrix SVD method incorrect output and throws
        ArrayIndexOutOfBoundsException
4348609 Poor rendering of textures on NT with 16 bit color
4350033 possible conflict between implementation and spec on
        PolygonOffset
4351050 APIs issue : Shape3D and Morph's intersect method.
4351579 APIs issue : Shape3D intersect method -- multiple geometry support
4352922 JFTC: light InfluencingBounds (BoundingSphere) seems to be broken
        on 1.2.1
4355041 JFTC: LOD failed to change level of detail after 1st frame                     
  graphics_si
4355332 Require Thread safe removeChild in BranchGroup
4357843 Picking doesn't handle OrientedShape3D's orientation when doing
        intersect test
4358284 readRaster() ignore StereoMode context
4358700 Geometry intermitantly disappears from scene
4359600 Transform3D returning NaNi
4359609 MediaContainer does not report errors
4359764 Java3D does not support > 32 canvas
4360688 Geometric primitives need to be optimized
4361036 texture mapped quad using geometry by reference doesn't work
4363761 getImagePlateToVworld not synchronized with View
4363884 Alpha that is no longer running still takes up CPU time
4363899 APIs issue : OrientedShape3D's intersect method needs view info
4363990 Texture image and TransformGroup  not update synchronously
4364343 shared objects no longer pickable after re-attaching to scene graph
4364493 Mirror transforms are not always classified correctly
4365165 JVM crashed when similar text is used on both OrientedShape3D
        and Shape3D
4365207 OriS3D's vwcBound computation needs to consider OriS3D's
        orientedtransform
4366060 ObjectFile.load() throws IndexOutOfBoundsException
4366473 Background geometry does not animate
4366494 RenderBin throws exception, possibly related to OrderedGroup under
        Background
4366511 Full screen antialiasing slow under OpenGL
4366528 Text2D rendered out-of-order in OrderedGroup
4368120 D3D: Color attributes change not working if vertex buffer is used
4368396 Geometry flashes

Sound
-----
4138605 using any non-javasound java sound causes severe performance hit
4164181 Sound performance on native threads is bad
4187092 Filtering causes loud, sweeping resonance to be added to most sounds
4187093 Cross-talk cancellation for sound playback in not implemented
4315018 Garbage sound in TestFilter
4348236 No background sound sometimes when startup
4348247 stopView() fail to stop background sound
4360456 PointSound.setPosition() not update unless parent transform modified
4360463 Doppler calculated results in less than expected frequency variation
4367333 programs/other/SoundExamples/ImmediateMode doesn't work correctly

Utility Bugs
------------
4158783 lw3d loader loses textures after pressing the reload button on
        Netscape
4173647 Cannot share Sphere objects of same size between immediate and
        retained mode
4217567 NormalsGenerator only checks the cosine for smoothing
4252349 First viewport may jump when using KeyNavigatorBehavior
4259533 getTexture() throws NullPointerException when using proxies
4308592 texture loader does not scale non-power-of-2 RGBA textures properly
4331669 setRectangleScaleFactor will not change text size unless setString
        called
4336679 In examples/PickTest program, a pick miss can happen on morph object
4343427 Loader interface has no facility to monitor progress of Load Operation
4347998 PickTool pickGeomAllSorted did not compute closest distance for
        PickConeRay
4367699 Lightwave Loader throws NullPointerException when loading data from
        a Stream


Windows/OGL-specific Bugs
---------------------
On Windows 2000 in 32-bit color mode with the new NVidia
"Detonator 3" driver, nothing is rendered and this error
will show up:

  wg1CreateContextFailed: The operation completed successfully.
  extentionStr == null

To work around the problem, switch to 16-bit color mode.

4296733 Canvas fail to resize under window for some configs
4332528 debug statement left in Win32 NativeConfigTemplate3D.c
4332530 Win32 Stereo: zbuffer not cleared when rendering right eye

Reply via email to