Welcome to Xj3D codebase. This are notes for the 4 Oct 2002 dev release of Xj3D. Since last Dev Release: ----------------------- LOD is back functional again - really, we mean it this time. Billboard node is there. Displays but does not rotate to face the viewer as required yet. ECMAScript debugging. - Constructor on MFNode corrected, but not 100% sure it works in all corner cases yet. - Events during initialize() and shutdown() are now correctly issued. Overlays back supported again. The mouse handling is not quite correct, and the They tend to wander vertically if you resize the window. Added workaround for memory leak due to Java3D bug with heavily replaced textures. LoadSensor is now spec compliant. Only missing set_url handling of a previously completely loaded node. Text node correctly renders. Still no vertical text support and the horizontal scaling is a bit off for some reason. Fixed missing JAR file for org.web3d.vecmath that would cause transforms to crash Added JAR files for the mobile renderer (xj3d-mobile.jar and xj3d-mobile-sg.jar) SAI classes tracking of spec changes. Moving about of EAI code to allow the SAI-External implementation to sit along side it and make use of the same mechanisms. SAI continual tracking of the latest draft specifications Major changes since M5: ----------------------- Complete rewrite of all of the event model evaluation code. It is now fully specification compliant. It is also much more efficient and generally renderer-independent. The only time it dips into renderer dependent code is for navigation and view-dependent actions. (ie sensors) No garbage generated and only updates all objects once per frame rather than after every eventIn recieved. Initial implementation for a mobile-capable browser/renderer Full runtime support for an in-memory VRML scene with no rendered output. Not all works yet, no navigation or any sensors, just basics. Vector math library following OpenGL conventions ProximitySensors now support position_changed and orientation_changed VisibilitySensors more accurate about when they are detected. Combination of this with ProxSensor changes means the old-style VRML97 HUDs work now. Protos and Externprotos coming and going from the scene graph work correctly for the inclusion of sensors and bindables. Hex encoding of integer values works for all SF/MFInt32 fields. MultiTexturing. Modified version of the Blaxxun proposal but more VRML-like. OpenGL renderer supports IFS and more efficient vector maths. Viewpoints movable and bindable. Multi-pass rendering available for handling output devices like Elumens Dome & VisionStations. LOD is back functional again. ECMAScript debugging. - Was not previously updating the field values on successive calls to the same script instance. - EventOuts generated by user code in initialize and shutdown were not being sent. SAI code is brought up to date with last draft of spec. Next dev release should have it back parallel with the ISO CD Text. SAI is not implemented, however. You can just compile against it. H-Anim support is working fully now, including 2001 spec. Matt Beitler has offered to test against full test suite for complete conformance checking. Known Issues: ------------- General: Huge amounts of garbage generated internally within Java3D's picking subsystem using Cone-based objects. Both PickConeRay and PickConeSegment are generating upwards of 2MB of garbage a second on a moderately complex scene! There are bug reports in for both of these. browser Viewing files with the Java3D-based renderers are causing stuttering problems when dragging the mouse. This appears to be some issue between Java3D and Swing as debugging shows that the J3D behaviours are still executing internally, but are not blitting the pixels to screen. There's nothing we can do about it. Suggest you try using AWT-based UI and see if that helps. Reloading a file with multiple inlines using the same URL but not DEFed will cause a multi_parent exception. Switching to a SimpleLoadManager instead of a MemCacheLoadManager will resolve. GeoVRML and UMEL local resolution not supported in pre-compiled code, you need to specify the local installation path in DIYBrowser.java and recompile. DOMViewer Does not support scripts or protos in XML documents. Since it sets every field of a node it can uncover bugs that DIYBrowser won't. Loader Works as advertised. Removed old loader example as the true one is supposed to be LoaderDemo. License ------- This source is licensed under the GNU LGPL v2.1 Please read http://www.gnu.org/copyleft/lesser.html for more information This software comes with the standard NO WARRANTY disclaimer for any purpose. Use it at your own risk. If there's a problem you get to fix it.