January 28th, 2013
· It is now possible to navigate in the Walk and Fly modes by mouse dragging.
· Mouse 3D device support was added.
· Screen-space ambient occlusion is implemented (see menu item "View -> Screen Effects").
· 3D lights can be edited interactively (see the "Edit -> Lights Editor" menu item).
· All screen effects cooperate now with multi-sampling (anti-aliasing).
· UNIT statement from X3D 3.3 is implemented.
· VisibilitySensor node is supported.
· Many fixes to triangulating concave polygons.
· Other minor improvements and optimizations coming from using Castle Game Engine 4.0.0.
January 2nd, 2012
· Many improvements to Collada rendering and conversion to X3D.
· Geometry shaders are supported.
· The "Limit FPS" option is implemented, to not exhaust CPU.
· More image formats are supported for textures (GIF, TGA, XPM, PSD).
· A menu item to take a screenshot with a transparent background.
· A new command line option to choose an initial viewpoint.
· Improvements and optimizations to shadow maps and Variance Shadow Maps.
· Color interpolators work in HSV space.
July 28th, 2011
· X3D models can be saved to disk using the X3D XML encoding.
· Conversion from VRML 2 to X3D is now possible.
· New menu items and command-line options were added to enable conversion to various VRML/X3D versions and encodings.
· The independent "tovrmlx3d" binary was added to the view3dscene release, specifically to perform conversions in batch mode.
· Saving VRML/X3D models to classic encoding was also improved with better handling of META tags, better indentation, and more reliable saving of models using shadow maps extensions.
July 4th, 2011
· 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.
· 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.
· 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 (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 KambiNavigationInfo.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).
February 8th, 2011
· Rendering of dynamic scenes is much faster.
· GLSL attributes inside VRML/X3D files are allowed.
· Fog can be limited to specific shapes by the LocalFog node.
· The FogCoordinate node allows you to specify explicit fog density at each vertex.
· Loading of GLSL shader sources from a data URI is supported.
· Multiple viewports observing the same 3D model are implemented.
· The command-line options for making screenshots in batch mode are now more reliable.
· TouchSensor.hitTexCoord_changed event is implemented.
· The TouchSensor.hitNormal_changed event was improved to generate smooth normals.
November 22nd, 2010
· Various screen-space effects are available: flashlight, depth visualization, and more. Defining your own effects is also possible.
· Many new X3D nodes are implemented, including all drag sensors, ClipPlane, and Billboard.
· The animating transformation was optimized.
· The "Examine" camera mode is improved.
· Switching navigation mode preserves the camera view.
· Smooth transitions between viewpoints are implemented.
· A toolbar with the most important buttons is available.
· Primitives have the texCoord field and work better with shadow maps.
· New KambiScript functions were implemented for handling rotations.
August 17th, 2010
· X3DLightNode.shadows field, to easily activate shadows on everything.
· Apperance.receiveShadows field, to easily activate shadows on specific shadow receivers.
· Light sources' projectionNear, projectionFar and such are automatically calculated now to suitable values, as long as you use high-level X3DLightNode.shadows or Apperance.receiveShadows fields.
· Incompatible changes: DirectionalLight.projectionRectangle order changed, to match standard OrthoViewpoint.fieldOfView order. Also, projection* parameters are zero by default (which indicates that they should be automatically calculated).
· Easy menu items to control shadow maps, see the new View -> Shadow Maps -> ... submenu.
· New ProjectedTextureCoordinate node for projective texturing. Can project a texture also from a viewpoint now.
· Extensions to control head-bobbing in VRML/X3D worlds.
· Picking and ray-tracing with orthogonal projection fixed. (See also new rayhunter (version 1.3.2) with --ortho option).
April 1st, 2010User-visible features:
· NURBS support. Most of the X3D NURBS component (level 1) is implemented, this includes curves, surfaces and interpolators. VRML 97 NURBS nodes are also handled.
· Major bugfixes to the GTK 2 (Unix) backend and shadow maps handling.
· Countless small bugfixes and improvements.
Programmer-visible engine features:
· Scene manager (TKamSceneManager), a manager of the 3D world.
· Custom viewports (TKamViewport) easily usable with our scene manager.
· 2D controls framework: TKamGLButton, TKamGLImage, better TGLMenu and more. Viewports are also 2D controls.
· Engine sources reorganized into more intuitive src/, examples/ etc. directories.
· Much more components registered on the Lazarus palette. (This will be extended in next releases.)
· Engine is licensed now on the terms of the GNU Lesser General Public License (with "static linking exception").
January 4th, 2009
· LOD (level-of-detail) node and Collision.proxy are handled now.
· A KambiOctreeProperties extension has been added to specify octree limits.
· The shape octree was sped up by using mailboxes.
· Various workarounds for Mesa3d bugs (in particular on Intel GPUs) and Mesa detection have been improved.
· Various frustum culling optimizations.
· Small improvements in the view3dscene interface: blend status text, a shapes count fix, and keeping the selected triangle when transforming shape.
· The path tracer honors VRML >= 2.0 materials.
December 20th, 2008
· Collision detection is now fast and accurate even in very dynamic scenes.
· Changing the Switch node's choice is now very fast, and many other events are significantly optimized.
· Starting the playback of time-dependent nodes is completely reliable.
· Dynamic shadows are rendered by view3dscene.
· The shadowCaster extension was implemented, to explicitly mark which objects cast shadows.
· The new draw mode allows you to view silhouette and border edges.
· ProximitySensor.orientation_changed and all of the X3D "event utilities" were implemented. alphaChannel extension was added.
· The open dialog under GTK 2.14 or later was fixed.
October 16th, 2008
· Scripting (in the KambiScript language) is implemented.
· Animating a camera by animating the Viewpoint position works.
· To improve navigation in scripted worlds, navigation type = "NONE" and speed = "0" are supported.
· Quaternions are used for EXAMINE navigation, which gives much more natural rotations when dragging with a mouse.
September 13th, 2008
· The main new features are X3D support and an events mechanism.
· Many new nodes related to events were implemented: four basic sensor nodes, linear interpolation nodes, and X3D event utilities.
· The implementation of existing features was improved to take events into account: binding nodes, routing events to GLSL shaders, controlling Inline and InlineLoadControl, and prototypes.
· MovieTexture is handled, with an extension to load image sequences with full alpha channel.
· Recording movies is possible. Other new features include Extrusion, BlendMode, KambiInline nodes, new X3D triangles/quads primitives, and HAnim nodes.