C.1 Release Notes from 1.4 to 2.0
This section documents the major changes between versions 1.4 and 2.0 of
Crystal Space.
Version 2.0 is a major release, covering more than three years of continuous
effort. As such, not all changes are documented. Below details the major
changes since the last release. This will continue to be updated as time
progresses.
This list will not be as complete as wished, but due to timescale between
this and the last release, it makes it difficult to document all changes.
New features/enhancements:
-
Added new demonstration applications: ‘csbias’, ‘csisland’.
-
Added new tutorial applications: ‘avatartest’, ‘shadertut’.
-
Added new tool applications: ‘hairtest’, ‘shagnetron’, ‘cslodgen’,
‘cslodview’, ‘csmocapviewer’, ‘csterrainedtest’.
-
Added new test applications: ‘imptest’, ‘transparentwindow’,
‘csceguiconftest’, ‘threadtest’, ‘jobtest’, ‘smoketest’,
‘deferreddemo’, ‘waterdemo2’.
-
The ‘startme’ application has been almost completely re-written for a nicer
an a more usable User Interface.
-
Many improvements have been added to the following applications and plugins:
‘viewmesh’, ‘walktest’, ‘genmeshify’, ‘bugplug’.
-
Added several generic tool classes that can be used in application development:
CS::Utility::iCameraManager
, CS::Utility::iHUDManager
,
CS::Utility::DemoApplication
, CS::Debug::iVisualDebugger
,
CS::Material::MaterialBuilder
.
-
New level and data added. Please look within the ‘data’ directory.
-
Threading support has been extended and improved.
-
Added a threaded loader for the parallel loading of the data.
-
Added support for custom camera projection matrices.
-
A new
iRenderManager
interface has been added, abstracting the rendering
method used to display the scenes.
-
A new post-effects system has been added, see
iRenderManagerPostEffects
and related classes.
-
The render managers, the lighting and shader systems have all received many fixes
and improvements.
-
The shaders have been split in the directories ‘data/shader’ for the global
weaved shaders, ‘data/shader-snippet’ for the snippets to be weaved in
the shader weaver, and ‘data/shader-old’ for the previous shaders.
-
Many new shaders have been added, such as the ‘sky’ shader implementing the
Perez luminance model, the ‘clouds’ shader implementing a Perlin noise, and
the ‘fake_sss’ implementing a fake sub-surface scattering. See in
‘data/shader’ for the other additions.
-
A new ‘deferred’ render manager has been added, implementing deferred shading.
-
The ‘lighter2’ application has been extended with a radiosity system with
support for caustics, allowing far more realistic pre-lighting.
-
A new culler has been added, ‘occluvis’, doing hardware occlusion visibility
culling.
-
A new imposter system has been added. See the ‘imptest’ application.
-
A new progressive Level of Detail system has
been added.
-
Added support for Pixel Buffer Objects.
-
Added support for static mesh and static mesh factory instancing.
-
Many fixes and improvements have been made to the mesh generator.
-
Many fixes and improvements have been made to ‘terrain2’ and its multi-splatting
functionalities.
-
Added support for modifiable terrains, along with the start of a terrain editor (see
‘csterrainedtest’).
-
Implemented most of the missing functionalities in the ‘Bullet’ physics
plugin. Augmented this plugin with many new functionalities such as soft bodies,
kinematic objects, terrains, and hit beam tests.
-
Added some tools for the creation and animation of soft bodies (see
CS::Animation::iSoftBodyAnimationControl
and
CS::Physics::Bullet::SoftBodyHelper
).
-
Added a plugin for the visual debugging of a physical simulation (see
CS::Debug::iDynamicSystemDebugger
).
-
Many additions and fixes to the Animesh mesh. Many
additions are about optimizations of the morphing and display processes.
-
Added support for animated decals on Animesh meshes.
-
Added a structure to hold the physical description of an Animesh (see
iBodySkeleton
and other classes).
-
Added many new animation blending nodes: ‘Ragdoll’, ‘LookAt’,
‘IKPhysical’, ‘IKCCD’, ‘Speed’, ‘Debug’, ‘Retarget’.
-
Fixes and improvements of the ‘FSM’ and ‘Animation’ animation
blending nodes.
-
Added some default template classes for the creation of new animation nodes (see
the header file ‘cstool/animnodetmpl.h’).
-
Added a BVH motion capture parser for the Animesh, along with a motion capture
viewer and a Point Light Display System (see ‘csmocapviewer’).
-
Added some tools for the creation and merging of Animesh meshes
(see
CS::Mesh::AnimatedMeshTools
).
-
Added the parsing of animation blending nodes to the ‘skeleton2’ loader.
-
Added a new ‘Fur’ mesh, for the animation and display of hairs and fur.
-
Added a new ‘Water’ mesh, for the display of oceans and seas.
-
Added a plugin for the Assimp library, allowing to load
genmeshes and animeshes into Crystal Space from a wide range of different file
format.
-
Added a new Blender 2.6x export script.
-
Improved the 3DSMax export script.
-
Added a new 3DSMax exporter plugin, see in the ‘/CSExporters/CrystalMax’
Subversion repository.
-
Added a new terrain exporter plugin for the PnP TerrainCreator editor, see in the ‘/CSExporters/CrystalPnP’ Subversion
repository.
-
The CEGUI plugin has received many improvements and additions.
-
A new generic application configuration tool has been added. See the classes
‘iConfigListener’ and ‘iConfigNotifier’, and the ‘csceguiconftest’
application.
-
The ‘wxWidgets’ canvas and ‘wxtest’ application have been improved.
-
The libnoise library has been integrated.
See the
CS::Math::Noise
namespace.
-
Added a Secure Hash Algorithm implementation (SHA-256). See the
SHA256
class.
-
Added a HTTP implementation (see the
iHTTPConnection
class and related).
-
Added many namespaces in the Crystal Space SDK. Future new classes should always
be put in some CS namespace.
-
There has been many additions, fixes and other work performed on the configure
system.
-
Extended support and usage of unit testing with CS.
-
There have been many fixes and updates for platform support, especially for the
ARM platform.
-
There has been many updates and fixes to the documentation.
-
Made memory blocks dump more useful in
ptmalloc
.
-
Added copy constructors to
csRefCount
/FastRefCount
that properly set the refcount to 1.
-
Made generic render step provide inverse object to world TF as a SV.
-
Extended
csFIFO
with a Top ()
method that peeks into the fifo
without removing anything.
-
Added [no]compact option to ‘optimisedata’, to put all data into
one file (or split into many).
API changes:
-
Added
csBitArray::IsBitSetTolerant ()
(does not assert for out
of bound indices).
-
Removed
CS_CONST_METHOD
and CS_PURE_METHOD
. Pure and
const specifiers have very strong semantics that almost never is warranted,
and to avoid problems and bugs caused by them remove them totally.
-
Addition new
SimpleStaticLighter
class. This is a convenience class
that calculates simple static vertex lighting (similar to what lighter2 would
do) for individual meshes. This is useful for statically lighting dynamically
created geometry or for updating vertex lighting on an object that has moved.
-
Added
PeekNext ()
methods to csRedBlackTreeMap
iterators.
-
Renamed
csFinite ()
to CS::IsFinite ()
.
-
Renamed
csNaN ()
to CS::IsNaN ()
.
-
Deprecated
csNormal ()
.
-
Added
iCameraListener
and deprecated iCameraSectorListener
.
Removals:
-
Completed removal of software renderer.
-
Completed removal of old event system.
-
Completed removal of ‘thing’ mesh plugin. However, you can now convert your
previous ‘thing’ meshes using ‘genmeshify’.
-
Completed removal of old sound system.
-
Completed removal of deprecated world attributes from tree.
-
Large cleanup of lighting code which has resulted in removal of both
interfaces and other methods. A result was a complete rework of lighting
code.
-
Removed the following canvas: ‘sdl’, ‘caca’, ‘xextshm’,
‘ddraw’, ‘softx’, ‘memory’.
-
Removal of ‘instmesh’ and ‘bezier’ meshes as they are
not that useful and instmesh isn't working that well either.
-
Removed
iImageIO::SetDithering ()
.
-
Removed deprecated
csProcessorCapability
.
-
Removed the ‘simpvs’ application.
Fixes that apply to tickets in Trac:
-
Changed
XMLshader
to expand all templates before retaining nodes
for later parsing. Should help with #486.
Other changes:
-
Switched by default to the ‘Bullet’ library instead of ODE for the
physical simulation. The ODE plugin will not get further support anymore,
and will be removed in some future.
-
The logic of the Animesh's animation blending nodes has been changed, and the
nodes work now in bind space instead of bone space.
-
‘perl’ and ‘java’ plugins are now disabled by default.
-
When building an application with “statically linked plugins” (usually by
utilizing the ‘LinkStaticPlugins’ Jam rule) SCF's automatic scanning
for plugins was “magically” inhibited. This behaviour has been abandoned;
now, by default plugin scanning is always performed independently of whether
statically linked plugins are used or not. Plugin scanning can be inhibited by
calling
scfInitialize
manually (see the API documentation for details
how).
-
parallaxAtt moved to ‘shader-old’.
-
Added a check to the legacy renderbuffer so that it removes the
CS_BUFFER_COLOR
user renderbuffer if colors are not set.
-
Changed to unshadowed render manager as default.
-
Disabled high DPI scaling on Windows Vista.
-
Un-inline most
csPathsList
methods to avoid cross-module memory
allocs/frees.
-
Add a 'used SV' traverser that gives the set of used SVs (instead
of individual SV names).
-
Optimisation ‘lighter2’ by not doing transparency-computation of shadowrays
if path is fully unoccluded or fully occluded.
-
Support for (properly hardware-accelerated) clip planes.
-
Packaging scripts have been moved from the scripts directory into a sub packaging
directory.
-
Use
glXChooseFBConfig
instead of glXChooseVisual
.
-
Avoid crashes when encountering a corrupt PNG images.
-
Extensive removal of dead and old code.
This document was generated using texi2html 1.76.