[back to main page]

Kambi VRML extensions

Contents:

  1. Introduction
  2. Extensions
    1. Extensions for all VRML versions
      1. Programmable shaders (X3D feature "backported" to VRML)
      2. Bump mapping (normalMap, heightMap, heightMapScale fields of KambiAppearance)
      3. 3D text (node Text3D)
      4. Mixing VRML 1.0 and 2.0 nodes and features
      5. Volumetric fog (additional fields for Fog node)
      6. Special objects immune to fog (fogImmune field for Material node)
      7. Inline nodes allow to include 3D models in other handled formats (3DS, MD3, Wavefront OBJ, Collada) and any VRML version
      8. Specify triangulation (node KambiTriangulation)
      9. VRML files may be compressed by gzip
      10. Node NavigationInfo handling details
      11. Fields direction and up and gravityUp for PerspectiveCamera, OrthographicCamera and Viewpoint nodes
      12. Mirror material (field mirror for Material node)
      13. Headlight properties (node KambiHeadLight)
      14. Specify how lights cast shadows (fields kambiShadows and kambiShadowsMain for light nodes)
    2. VRML 1.0 only extensions
      1. Field parts in Cone and Cylinder nodes may have value NONE
      2. Fields attenuation and ambientIntensity for light nodes
      3. Parts of Inventor in VRML
      4. Multi root node
      5. Fields describing physical properties (Phong's BRDF) for Material node
      6. Field separate for WWWInline node

Introduction

This is a VRML engine, so many programs here do something non-trivial with VRML files. Not surprisingly, I needed at some point to extend what is allowed by VRML specifications, for various reasons. This page documents these extensions, so everyone can use them.

Note that some of these extensions may not be tolerated by other VRML viewers. However:

To understand specifications of these extensions you will need some basic knowledge of VRML. Here you can find official VRML 1.0 and 97 specifications if you want to educate yourself.

VRML fields and nodes are specified on this page in the convention somewhat similar to VRML 97 specification:

NodeName {
  fieldKind    FieldType   fieldName   default_value  # short comment
  ...
}

Example VRML models that use these extensions may be found in Kambi VRML test suite — look inside vrml_1/kambi_extensions/ and vrml_2/kambi_extensions/ subdirectories.

Extensions

Extensions for all VRML versions

VRML 1.0 only extensions