view3dscene 3.10.1, engine 2.5.1 released: XML output

July 25, 2011
view3dscene new demo screen - tower with sunset sky
view3dscene new demo screen - Examine navigation tooltip, and some fog by texture layers
Testing model for xmlportals_to_x3d
Portals visualized by xmlportals_to_x3d

We present new releases of view3dscene 3.10.1, our VRML/X3D browser and 3D models viewer, and Kambi VRML game engine 2.5.1, the engine underneath.

  • The main new feature of view3dscene is the ability to save files in X3D XML encoding (in addition to previous VRML/X3D classic encoding). This allows you to convert between X3D encodings.
  • view3dscene can also convert from VRML 2 to X3D (necessary if you want to save VRML 2 to X3D XML, optional if you want to save VRML 2 to X3D classic).
  • All conversions are available through three File -> Save As... menu items in view3dscene.
  • All conversions can also be done in batch mode, by new command-line options --write, --write-encoding, --write-force-x3d. Old --write-to-vrml option becomes deprecated (it's a shortcut for --write --write-encoding=classic). Documentation of conversion options is here.
  • Independent tovrmlx3d binary is also provided inside view3dscene release, to perform conversion in batch mode. It's usually better to use this than view3dscene --write, because tovrmlx3d is not linked to GUI libraries (so can work on stripped-down systems) and has simpler command-line options (it's purpose is only to convert).
  • Various small improvements to classic encoding output were also done. We better treat X3D META (adding ourselves to META generator/source fields, moving previous (different) values to generator-previous/source-previous). We have better, consistent newlines around SFNode/MFNode fields. Command-line conversion does not "expand" receiveShadows and defaultShadowMap fields.

Also, various small improvements to the engine API for developers. Engine 2.6.0 is planned to have some large API improvements, this is a first small step:

  • Annoying suffixes _2, _3 were removed from most node class names. For example, you can just write TNodeGroup or TNodeTransform to use Group or Transform from latest standard version (in these, as in most cases, "latest" node version accounts for both VRML 2.0 and X3D; only the ancient VRML 1.0 nodes need _1 suffix).

    For compatibility, the old names with suffixes still exist, but you should drop them (assuming of course that you want to target your work for the latest version of the standard, that is X3D — not VRML 1.0 or 2.0).

  • Large and useless SuggestedVRMLVersion mechanism (to auto-detect standard version before saving) was removed.
  • xmlportals_to_x3d example removed. This was a visualization (and converter to X3D) for an output (Boost serialized data) from Remigiusz Żukowski program to automatically detect portals in 3D scene. (You can read Remigiusz paper (in Polish) here.) This program was not available publicly and is not extended anymore, as far as I know, so I don't think that my visualization tool is useful anymore. (It will live in SVN repository anyway.)
  • Capturing warnings is simplified. This unfortunately breaks compatibility (otherwise we would need awfully complicated hacks only to keep compatibility). Units VRMLErrors and DataErrors no longer exist. Unit KambiWarnings is added, with OnWarning variable, that captures both VRML/X3D and other (Collada, sound files, images) warnings (warning type can be distinguished by Category string).

Also minor website improvements: