|
Virtual Reality Modeling Language (VRML)VRML is the 3D analog to HTML. HTML provides a 2D standard for displaying information, forms and links on the internet; VRML does the same thing in 3D.The VRML 1.0 specification provides a standard for static 3D models -- the user can navigate and manipuate the 3D view, but the model itself cannot generally move. The VRML 2.0 spec provides the ability to associate behaviors via Java scripts to various parts of the model. This lets the VRML world respond to user actions, and to dynamically modify itself.
Plethora of SpecificationsWhile VRML 1.0 specification is stable, VRML 2.0 has spawned a whole stream of new proposals.The VRML community has agreed to support Java as the standard language for adding behaviors, but has not agreed to a standard scripting language or a mechanism to interface with external applications. The following attempts to sort out these specs and drafts.
VRML 1.0 vs VRML 2.0If you simply need to display a 3D model and provide 3D links, VRML 1.0 is a good way to go -- the files are smaller, they are easier to create via a text editor, and numerous browser and plugins support it.If you need to add animation, user interaction or custom behaviors, then you need to go with VRML 2.0.
Which VRML 2.0?When the VRML community began looking at adding behaviors to 3D models, numerous proposals were drafted, but only two came out to the forefront: SGI's Moving Worlds proposal, and Microsoft's ActiveVRML.Eventually, Microsoft dropped its proposal in favor of SGI's proposal, which became the basis for the VRML 2.0 specification.
ScriptingWhile VRML 2.0 supports Java as its standard behavior language, the spec left it open for vendors to support other scripting languages, as well.Some vendors, such as Sony, refused to support a light-weight scripting language, while most other VRML vendors and authors pushed for the support of Netscape's JavaScript. SGI went ahead and implemented a light-weight version of JavaScript they called VRMLScript. It is likely that SGI and most other VRML vendors will eventually support JavaScript, with VRML extensions.
Java ExtensionsAs standard Java and JavaScript have no VRML-specific support, several proposals have been drafted to add such support.Netscape has proposed JSObject JavaScript Extension, which allows Java applets to talk to one another. See their Navigator Object Heirarchy document. Sony proposed JSAI Java Extensions for VRML, which has been adopted by the Java standard. This provides a way for Java code, embedded (or linked) in a VRML model to control its behavior. This however, does not provide a way for VRML models to interact with external applications. SGI has proposed the JSObject-based External Authoring Interface (EAI) provides a 2-way interface between VRML models and Java applets. An EAI demo with source is avaialble at Grafman's VR World.
Java3DWhile VRML 2.0 was being crafted, a group of Java-centric developers took the approach that behaviors should not be part of a 3D interchange format, that all 3D rendering methods should be available in Java, and that the applet itself should be responsible for behaviors -- thus was born Java3d.While Java3D is an excellent addition to the standard Java packages, it lacks one significant feature which is the basis of VRML: it provides no standard 3D interchange format. The primary advantange of VRML is that it provides a way to store, transmit and restore 3D models and behaviors in a platform/hardware/language-independent way, as does HTML. In other words, VRML and Java3D are complimentary technologies.
Binary FormatsVRML is defined as a plain text description language, like HTML. However, for added performance, an optional binary format was proposed with the VRML 2.0 draft. IBM has proposed Apple's Compressed Geometric Data (CGD) specification as VRML's optional binary format.
VRML Specifications and ReferencesThe Internet Spec List - VRML SpecsGrafman's VRML Tips
For comments/correction/additions regarding this reference, email specs@graphcomp.com. |
|