NAME¶
coin250 - New Features in Coin v2.5.0 This is a brief summary of the new
features in Coin v2.5.0, grouped by feature category.
Geographical Data Support¶
The Geopgraphic Data Support nodes are partly based on GeoVRML
(
http://www.geovrml.org/), and partly based on our own UTM-nodes which can be
found in the SmallChange library.
The Geographic Data Support nodes makes it possible to create e.g.
globe-spanning models that you can navigate around in without getting into
float precision problems ('the shakes'). Some assistance from the application
code is needed for this though; it is not a fully automatic solution.
New nodes:
- •
- SoGeoOrigin
- •
- SoGeoLocation
- •
- SoGeoSeparator
- •
- SoGeoCoordinate
In addition to new nodes,
SoCamera and its derived nodes have been
updated to support the
SoGeoOrigin node.
The coordinate system support in the above nodes are currently a bit lacking
(only a few systems/zones are supported), but this will improve over time.
API-changes should not be needed to extend this, so patchlevel releases would
be enough to add more coordinate systems.
The VRML2 counterparts of the above nodes, which would be a subpart of
implementing the GeoVRML extension, are not yet in development, but they might
show up for the next major release since a big part of the implementation will
be shared.
Note: These above SoGeo*-nodes make the UTM*-nodes in the SmallChange library
obsolete (for anyone who uses those), so the support for those nodes will
eventually be deprecated and removed. They won't be removed over night though,
but for new users: avoid starting to use the UTM*-nodes at all cost to avoid
having to waste time on a port down the line.
Generic GLSL Shader Support¶
Shader support is implemented through a set of new shader nodes, more or less
compatible with the corresponding TGS extensions. Beyond GLSL, Coin also
supports ARB shaders and Cg shaders (if the Cg library is installed). However,
we will only recommend the use of the shader language GLSL and put our focus
on that one.
New nodes:
- •
- SoShaderProgram
- •
- SoVertexShader
- •
- SoFragmentShader
- •
- SoGeometryShader
See also the
'Shaders in Coin' page for more information.
Generic Shadow Rendering Functionality¶
Support for rendering shadows has been added to Coin through a set of
shader-based nodes. The technique used is the Variance Shadow Maps technique
(
http://www.punkuser.net/vsm/).
New nodes:
- •
- SoShadowGroup
- •
- SoShadowCulling
- •
- SoShadowStyle
Vertex Buffer Object (VBO) Usage¶
A lot of nodes have had their rendering code optimized for VBO usage, giving
great performance increases. However, this is not universally enabled - it is
necessary to organize the scene graphs in specific ways for VBOs to be used.
See the
VBO Rendering in Coin page for a detailed description.
Relevant classes:
- •
- SoVertexProperty
- •
- SoReorganizeAction
Expanded Sb* Class Collection¶
The set of Sb* classes in Coin has been expanded greatly, with most notable a
whole skew of SbVec and SbBox classes. The reasoning behind this move was that
historically these classes were just added as needed, one by one, causing the
stable branch of Coin and the development branch of Coin to diverge and become
more and more incompatible as time went by. Also, extension nodes were created
in peripheral libraries that used these new classes from the Coin development
branch, and consequently couldn't be built gainst the stable branch of Coin.
With this preemptive class set expansion, we hope to cause that the Coin
stable branch and the Coin development branch stay closer in sync over a
longer period, and that the incompatibility divergence will happen around
major new feature sets instead of around minor details.
New Sb*-classes: SbBox2i32, SbBox3i32,
SbBox3d,
SbVec2b,
SbVec2ub,
SbVec2us,
SbVec2i32,
SbVec2ui32,
SbVec3b,
SbVec3ub,
SbVec3us,
SbVec3i32,
SbVec3ui32,
SbVec4b,
SbVec4ub,
SbVec4s, SbVec4us,
SbVec4i32,
SbVec4ui32,
SbXfBox3d
Note: You can also find a good deal of these classes in TGS Inventor, so this
was also a TGS compatibility move.
Expanded Field Class Collection¶
The exact same reasoning as for the Sb*-classes goes for the field classes.
New field classes:
SoSFBox2s,
SoSFBox2i32,
SoSFBox2d,
SoSFBox2d,
SoSFBox3i32,
SoSFBox3d,
SoSFColorRGBA,
SoSFDouble,
SoSFVec2b,
SoSFVec2i32,
SoSFVec2d,
SoSFVec3b,
SoSFVec3i32,
SoSFVec4b,
SoSFVec4ub,
SoSFVec4s,
SoSFVec4us,
SoSFVec4i32,
SoSFVec4ui32,
SoSFVec4d,
SoMFColorRGBA,
SoMFDouble,
SoMFVec2b,
SoMFVec2s,
SoMFVec2i32,
SoMFVec2d,
SoMFVec3b,
SoMFVec3s,
SoMFVec3i32,
SoMFVec4b,
SoMFVec4ub,
SoMFVec4s,
SoMFVec4us,
SoMFVec4i32,
SoMFVec4ui32,
SoMFVec4d
SoFrustumCamera node¶
This node is added to make it possible to set up a custom camera with full
control over the view volume.
SoFrustumCamera is basically a mapping of
the OpenGL glFrustum() method.
The typical use of
SoFrustumCamera is in a CAVE or MultiPipe environment
where it's often necessary to set up cameras based on the configuration of the
different displays.
Miscellaneous¶
Below follows a non-exhaustive list of other, more minor, tweaks and tidbits.
SoSearchAction on SoFile nodes¶
To facilitate control over whether an
SoFile node should traverse its
children during an
SoSearchAction traversal, two static methods have
been added to
SoFile.
New functions:
- •
- SoFile::setSearchOK() [static]
- •
- SoFile::getSearchOK() [static]
For those who write generic code using C++ templates, a template type
information library has been added for the primitive Coin-types, so you can
use type relations for populating a template instead of needing template
parameters for all changing types of the template, or you can write generic
code on type attributes like the number of dimensions of an SbVec class.
SbTypeInfo<T> can be found in
Inventor/SbTypeInfo.h.
Visual Studio Projects¶
The Visual Studio projects have been split into projects for separately
building, installing, uninstalling the Coin SDK, and document generation. This
was done primarily to be able to build without automatically performing the
installation procedure at the same time, but also to offer other supplementary
targets later like the doc-generation project...
New features for Coin v2.4.0 are here.