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