Welcome to Xj3D codebase. This are notes for the 12 Oct 2002 dev release of Xj3D. Since last Dev Release: ----------------------- Script initialize() method is now being called at the correct time when loading a new world. Event model does not evaluate until all initializes are complete. Not tested yet on Inlines. DirectOutput writing to a script's eventIn (and EAI action of same) does not work yet. Can specify a world and all its texturs as a jar: URL now. Test world is jar:http://www.xj3d.org/downloads/test.jar!/jar_box.wrl Sorted out issues with occasional truncated files. Turns out to be a bug with HTTPClient library. Now require version 0.3-3. Fixed issue with EAI createVrmlFromString barfing on VRML97 content. However until an SAI implementation is available, EAI will allow loading of X3D worlds as well as VRML97. This will change once an SAI implementation is available. Fixed issue with EAI attempting to create sender threads without a priviliged block when run in applets Overlays are back functional again. Still minor issue with vertical values getting screwed up with window resize (not evident in j3d.org code). New layout node type - XYLayout for fixed positioning. Fixed viewpoint isBound/bindTime eventOuts getting very confused. SFImage completed now. Handles hex encoded (OxFF0000) and zero size images. KeySensor now works completely. Loader code now properly sets up the protocol handlers, which it never did before. Loader will handle loading content from jar files. Loader API call added to provide directory configuration information for resolving URNs. Makes GeoVRML and UMEL usable when using a loader. 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. Xj3D working within a web browser is debugged and fully supported. It doesn't work as a plugin, but assumes the use of the EAI createComponent for now. 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.