VRML 1.1 Changes

The following are proposed changes to the VRML 1.0 specification.

These have all been approved by the VAG (VRML Architecture Group) as listed in the minutes of the Aug 21-23 1995 meeting.

Please send any comments on these proposed changes to the www-vrml mailing list (www-vrml@wired.com).

These are grouped into a number of different categories.

Clarifications

  1. The Texture2 node will require support for JPEG, with support for PNG recommended (in part because it has an alpha channel). GIF is not recommended, due to licensing restrictions.

  2. A standard way of mapping a Material to a color and set of coefficients (ka,kd,ks) will be defined. This is for renderers that don't compute the color components separately.

  3. The exact lighting equation to use will be specified. It will be noted that the ambient color should be ignored, since in practice it's the same as diffuse.

  4. The idea of "cycling" in MaterialBinding will be deprecated and then dropped.

  5. PER_VERTEX material binding will only support emissive color and transparency, and many browsers may not even support those except in unlit shading.

  6. The LOD description will be clarified. The center point for the range calculations is [0,0,0] in object coordinates. Renderers may adjust the ranges based on performance (e.g. to maintain a constant frame rate), so LOD should not be used to simulate the effect of behavior. LOD can read a WWWInline at any time. The range values should be transformed, effectively transforming the camera position into object coordinates.

  7. The MatrixTransform node can only be used to specify a combination of rotation, translation and scaling. Use of the final column of the matrix is not supported. All matrices must be invertible.

  8. In transparency, an alpha value of 0 is opaque, and 1 is transparent. Many browsers will not support partial transparency, and will treat alpha values greater than or equal 0.5 as 1.0 and values below 0.5 as 0.

  9. The first camera specified in the file should be the default one; the others are available as other entry points into the scene. The camera's DEF'd name can be used with the URL of a WWWAnchor, separated from it by a #. The focalDistance can be used as a navigational hint as to how fast to move.

  10. It will be explicitly stated that although the file format uses a scene graph metaphor, browsers are not required to maintain the scene graph in memory.

  11. MFFloat and MFString will be added to the list of types (they were overlooked initially).

  12. The SFNode type will be added.

  13. Browsers should recognize materials with multiple emissive colors, and no specified diffuse or specular colors, as being "unlit". This removes the need for a LightModel node. Browsers are unlikely to support a mixture of lit and unlit materials in a single object.

  14. In the Cube node, it will be made clear that width=x, height=y, depth=z.

  15. The # character is allowed in SFString, but not in node names.

  16. In SFColor, the values will be in a Kernighan and Ritchie style scanf format.

  17. The scope of Translate, Rotate, Scale and Transform will be defined.

  18. A clear convention on case for field names and node names is adopted, to allow parsers to tell when they've finished with fields and are now parsing children. Field names are fieldName, node names are NodeName.

  19. Custom nodes and fields should have a name ending in EXT if used by more than one vendor, or FOOX (where FOO is a vendor name) for vendor-specific extensions.

  20. The header will (of course) say 1.1 instead of 1.0; it will also say "utf8" instead of "ascii".

  21. In the description of WWWInline, it will be made clear that the bboxCenter is just a hint as to where the center of the box will wind up; it is not to be used for translation.

  22. In the description of WWWAnchor, it will be made clear that the "deepest" anchor wins.

  23. It is strongly suggested that DEF'd names be kept unique.

  24. Explicitly say that definintions for new nodes (done with "isA" and "fields") are file scoped; they only need to be specified the first time.

New Nodes

  1. A NavigationHints node:
        NavigationHints {
            translationSpeed   IMPLIED   # SFFloat (-1 implies no default)
            navigationMode     DEFAULT   # SFEnum
            }
    
    The translationSpeed is in meters per second. The navigationMode is one of WALK, FLY, EXAMINE, or DEFAULT.

New or Changed Fields

  1. Two new fields have been added to the Camera nodes: nearDistance and farDistance. The defaults values are 0.01, 5.00.

General

  1. LOD nodes will be treated as Separators.

  2. Switch nodes will be treated as Separators.

  3. Group nodes will be deprecated, then dropped.

  4. TransformSeparator nodes will be deprecated, then dropped.

  5. Many browsers will not cause lights to stop at Separators.

  6. Separator syntax will change; basic idea is to have properties followed by geometry followed by children.

  7. Switch nodes will be able to select any one of their children, or none of them, but not all of them.

  8. The default settings in a ShapeHints node will be vertexOrdering COUNTERCLOCKWISE and shapeType SOLID.

  9. Anywhere that a URL is specified, a URN should be valid as well; this includes the name fields of WWWInline and WWWAnchor and the filename fields of Texture2 and SoundEmitter.


Edited by Bernie Roehl ( broehl@sunee.uwaterloo.ca).
Last updated September 8 1995

QUE Home Page
For technical support for our books and software contact support@mcp.com
© 1996, Que Corporation