Welcome to Xj3D codebase. This are notes for the 27 April 2004 dev release of Xj3D. Changes since Last Dev Release: ----------------------- Bugzilla: The following Bug IDs have been fixed and marked as closed: 13, 64, 65, 69, 70, 72, 77, 81, 85, 86, 90, 93, 101, 103 Externproto/proto implementation debugging. A lot of work has been put into debugging some of the more interesting cases of externprotos referencing other externprotos and so forth. We believe we've now got all of these cases working, but there may be more oddball ones floating around. EAI/SAI: Commonised the buffering code between the SAI/EAI so that they now use the same basic model. Event buffering should work in both external forms correctly now. Fixed a few bugs related to the reading of field values for protos from the external views. Parsing: Escaped double-quote characters in SF/MFString fields should be correctly unescaped by the time it hits the node implementation. Error Messaging: The registered ErrorHandler instance is now being passed throughout most of the system internals. Any errors should now be using this, rather than System.out. Thus, almost all errors will appear on the console now, rather than the command line. XML: DTD updated to latest draft spec revision. Few typos and field values incorrectly defined. External Loading: Re-implemented the content queuing system to compress load requests for files that use the same URL strings. Should eliminate a lot of the double and triple load requests we see some times when the user does not DEF/USE textures. OpenGL Renderer: A lot of work here on optimisation. Transparency sorting and state sorting now in use, as well as implicit stereo and immersive device handling. Heap more nodes implemented. Multitexture and most of our texturing extensions completed. Most of the Triangle*Set nodes, Billboard, LOD, Visibility and Proximity sensors functional. New extension that provides render-to-texture capability. See http://www.xj3d.org/extensions/render_texture.html for more info. Conformance: Inlines, Scripts and Externprotos now correctly enforce the spec version they came from. An inline in a VRML97 file will not load content that is defined as an X3D file and vice versa. Webstart Support: Added fallback code that should allow fetching of properties and configuration files if Xj3D finds itself inside the JWS environment. Changes since M8: ----------------------- OpenGL Renderer based on our Aviatrix3D scene graph (http://aviatrix3d.j3d.org) is now fully functional again. Not quite as complete as the Java3D, but within 90% of it. Expect the rest to catch up very quickly and you should see on-par capabilities for the core VRML97/X3D capabilities in the next dev release. Our custom extensions may take longer to catch up. See http://www.xj3d.org/status.html for more details. Xj3DBrowser now supports both renderers fully again. The Mobile renderer is still a red-headed step child. Binary Format: Lots of work extending the internal APIs to deal with both text and binary values for fields. Known Issues: ------------- OpenGL Picking: Something odd is going on with one of our matrix setups. Haven't tracked it down yet. Picking sometimes is accurate and sometimes is not. General: Huge amounts of garbage generated internally within Java3D's picking subsystem using Cone-based objects for those using J3D1.3.0. Fixed for 1.3.1FCS. ECMAScript: Due to a change in Rhino 1.5R4, a number of things broke in our code. The changes were an all-or-nothing afair. So we've decided to fix the code to work with 1.5R4-1. That means you will need to upgrade your copy of Rhino to this version. As a result, the standalone print() method that some browsers support, is no longer supported by us. For your code to run, you must use Browser.println() instead. MovieTexture In order to work, you need to have JMF installed. AudioClip The Java3D audio capabilities are exceedingly bug-ridden. If you use anything before 1.3.1beta, you'll not hear any audio content. browser GeoVRML and UMEL local resolution not supported in pre-compiled code, you need to specify the local installation path in DIYBrowser.java and recompile. 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.