Development news: Examine improvements, smooth transitions, PlaneSensor and more

September 30, 2010
Mirrors by RenderedTexture, by Victor Amat
castle_siege model from DeleD sample models, converted to VRML by Stephen H. France
castle_siege model from DeleD sample models, with shadows

The quest to "cleanup and optimize" all around the engine continues :) New features are listed below. As usual, you're welcome to test them by trying our nightly builds.

  1. Camera improvements:

    • Examine camera got a functionality boost, and as a result some long-time troubles with switching camera modes are fixed now. Examine camera correctly honors now Viewpoint nodes, and switching camera modes preserves the current view, and switching viewpoints preserves camera mode. Thanks to Jens van Schelve for reporting this and pushing me to fix this :)

      Developers: engine has a new camera class, TUniversalCamera, that is created by default for VRML/X3D scenes and offers a functionality of both Examine and Walk navigation methods. If you previously used something like "(SceneManager.Camera as TWalkCamera)" to access Walk-specific properties, you may need to use now "(SceneManager as TUniversalCamera).Walk" to use them. Or just try to use the basic TCamera features, without downcasting to specific camera descendants.

    • Smooth transitions between viewpoints are implemented. They also follow X3D NavigationInfo.transitionType, NavigationInfo.transitionTime fields (X3D spec).

    • All camera moving and rotating speeds are now expressed inside the engine in nice units/per second.

      Also, headBobbingDistance is renamed into much more suitable headBobbingTime, and is also expressed in seconds now (divide by 50 to get the same behavior with old values).

  2. New sensors implemented:
    PlaneSensor (X3D spec, support details, demos in SVN kambi_vrml_test_suite/x3d/plane_sensor*.x3dv),
    StringSensor (X3D spec, support details, demo).

  3. Shadow maps (receiveShadows, shadows fields) for primitives (Box, Sphere etc.) are fixed now (demo).

  4. Victor Amat updated the demo using our RenderedTexture to get mirrors on a flat surface. See kambi_vrml_test_suite/x3d/rendered_texture/chess.x3dv in SVN kambi_vrml_test_suite.

  5. Various fixes to TimeSensor and other stuff, thanks to Stephen H. France for reporting!