view3dscene 3.2, engine 1.6 release: collisions in dynamic worlds

December 18, 2008

view3dscene 3.2 is released, with a lot of improvements and optimizations for dynamic VRML/X3D worlds. As usual, this is accompanied by underlying Kambi VRML game engine 1.6.0 release. Major changes:

  • Our spatial data structure has undergone serious rework, which in English means that your whole scene can be now much more dynamic. Everything can move and transform, and things will work smoothly and fast. All collision detection routines will "see" the most current scene state, which means that you can e.g. click on moving targets, and you will fall down if a hole opens under your feet, and generally you can interact with every dynamic part of your scene without problems.

    I prepared a video showing a simple dynamic world written in X3D and played with view3dscene, see it on the right. The video is only a poor substitute for actually running and playing with this yourself, feeling the smoothness of all editing (the poor framerate of the video is only because of the capturing process...). So after downloading view3dscene, you're welcome to also download this demo dynamic_world.x3dv (or just grab it along with the rest of Kambi VRML test suite) and open it. It shows how you can edit the world by KambiScript, how changing transformations works fast, and how it all cooperates with collision detection — whatever scene you will build, your avatar will move honoring collision detection.

  • Changing Switch.whichChoice is greatly optimized. Previously this was very costly operation, now it's instantaneous (almost no work is required). Many other optimizations were done for dynamic worlds, including faster Transform traversing, faster sensor's enabled switching, more reliable starting of time-dependent nodes and many more.

    Thanks to De-Panther for pushing me to implement a lot of these features!

    Dynamic shadows screenshot
  • Dynamic shadows support is greatly improved, finally view3dscene can render with shadows, honoring our shadow's extensions. We also have new shadowCaster extension. Oh, and shadows rendering with transparent objects is fixed. Just try the file x3d/kambi_extensions/shadows_dynamic.x3dv from Kambi VRML test suite in new view3dscene.

    view3dscene has now view mode Fill Mode -> Silhouette and Border Edges, this is very handy for checking whether your models are correctly manifold (this is important for shadow volumes).

  • ProximitySensor.orientation_changed, X3DSequencerNode, BooleanSequencer, IntegerSequencer implemented.

    alphaChannel extension field added to all texture nodes.

  • Bugfix for open file dialog under GTK 2.14 (like Ubuntu 8.10). Thanks to Graham Seed for reporting.