view3dscene 3.10.0, engine 2.5.0, demo models 3.0.0 released

July 2, 2011
Shinto shrine model, from , with multiple shadow maps enabled Shiny dark metallic material under multiple lights, with per-pixel lighting.
Castle level with sharp spot headlight Castle level with smooth spot headlight
Lights with radius with shader rendering Volumetric fog
Textured spot light with shadow Castle "overburn" simple effect.
Horse model from 3DS file with bump map Shadow volumes from chopper over a house scenery. Chopper can be moved, rotated, scaled by mouse.
Fountain level model, with shadow volumes. The same fountain level model, with shadow volumes. After some interactive fun with moving/rotating stuff around :)
PointSet, with coordinates and colors animated (the latter by our ColorSetInterpolator). From Jens van Schelve from

We're proud to release a new stable versions of view3dscene, our VRML/X3D browser and other 3D models viewer, and Kambi VRML game engine, which is at the core of view3dscene and where all the magic is actually implemented :)

Important new features:

  • We have a new shiny method of rendering everything through shaders (OpenGL Shading Language, aka GLSL). All of the standard X3D rendering features, as well as our extensions, are available in this rendering mode. This results in much better look of many scenes.

    By default, the shader rendering is used only for shapes that require it — shapes that are shadow map receivers, use bump mapping, or have an explicit shader source code assigned (by the ComposedShader node, or by the new Compositing Shaders extensions). You can switch "View -> Shaders -> Enable For Everything" in view3dscene menu, to have everything rendered through shaders (make sure you have a good GPU).

    • All the lighting is calculated per-pixel in shader rendering (we use the Phong shading). This means you see much nicer specular and spot light highlights. Try to make some smooth and curvy metallic surfaces to appreciate it :) Also light's attenuation, radius, SpotLight.beamWidth are precisely rendered now.

    • Our bump mapping effect is very nicely unified within the new rendering process. Now bump mapping works under all lighting and texturing conditions, works with two-sided lighting, and takes all normal VRML/X3D lights into account.

      This also allows us to make bump mapping "enabled" by default. (You can control it by View -> Bump Mapping menu of view3dscene of course.)

    • The shadow maps implementation is also nicely unified with new rendering. This gives a huge improvement, as now we take into account the shadows in the correct place of the lighting equation, scaling down only the contribution of the obscured light. So the shadows maps work fully correctly with multiple lights and multiple shadow maps over the same shape.

      Shadow maps also work now with all the multi-texturing possibilities. And, in general, they work with every VRML/X3D lights/materials/textures settings.

  • Another big news is our compositing shaders extensions. The short introduction to our "compositing shaders" idea is here, including the screenshots and information where to find the demo models.

    My paper about this was accepted for Theory and Practice of Computer Graphics 2011 conference, and will be available here publicly later.

  • Converters improvements:

    • Conversion of 3DS, GEO, Wavefront OBJ, MD3, Collada reimplemented to produce X3D 3.2.
    • When loading 3DS and Wavefront OBJ, we try harder to find matching texture name.
    • We read normalmap (aka bumpmap) information from 3DS and Wavefront OBJ models. This is naturally converted to our bump mapping extensions for VRML/X3D.
  • We also release grand new version of our VRML/X3D demo models 3.0.0 (previously called Kambi VRML test suite). A ton of new models were added, and many were improved — the whole archive is 65 megabytes now (compared to previous 41 megabytes).

    Most of the stuff is reorganized into directories named after features (like shadow_maps, shaders etc.) as opposed to versions (like vrml_2, x3d). Brand new models are mainly in the compositing_shaders and shadow_volumes directories, but also explore other directories — the new layout should allow you to discover some old-but-hard-to-find gems inside :) The idea is that new directory names indicate features, so you can immediately see the features of engine and view3dscene.

  • We also release (in source only) castle version 0.9.2. This is for developers, so you have castle sources compatible with latest engine.

  • Our Blender X3D exporter is updated to Blender 2.58, porting our normalMap features.

  • Other new features and fixes:

    • X3D light source "global" field is correctly supported now.
    • You have much more options for customizing the headlight, by new NavigationInfo.headlightNode extension. You can put any X3D light (directional, spot, point) there, and it will work.
    • VectorInterpolator extension implemented to animate MFFloat sets, for example to animate ElevationGrid.set_height. Simple demo.
    • ColorSetInterpolator extension to animate MFColor (set of colors) fields.
    • LineProperties node implemented (see Shape component support).
    • Transform animation optimizations.
    • Various prototype speed and memory optimizations.
    • Crude implementation of some BitManagement nodes.
    • heigthMap for bump mapping should be placed within alpha channel of normalmap image, and parallax bump mapping works now much more efficient.
    • view3dscene has new File -> Preferences persistent settings for line width (controls all line visualization, like wireframe, bounding box, LineSet etc.), point size and default background color.
    • VRML 1.0 PerspectiveCamera.heightAngle and OrthographicCamera.height support.
    • Shadow maps PCF 4 bilinear fixes — it was too dark.
    • Various smaller engine fixes (some redraw, camera, fpc versions issues fixed).