1coin250(3) Coin coin250(3)
2
3
4
6 coin250 - New Features in Coin v2.5.0
7
8 This is a brief summary of the new features in Coin v2.5.0, grouped by
9 feature category.
10
12 The Geopgraphic Data Support nodes are partly based on GeoVRML
13 (http://www.geovrml.org/), and partly based on our own UTM-nodes which
14 can be found in the SmallChange library.
15
16 The Geographic Data Support nodes makes it possible to create e.g.
17 globe-spanning models that you can navigate around in without getting
18 into float precision problems ('the shakes'). Some assistance from the
19 application code is needed for this though; it is not a fully automatic
20 solution.
21
22 New nodes:
23
24 • SoGeoOrigin
25
26 • SoGeoLocation
27
28 • SoGeoSeparator
29
30 • SoGeoCoordinate
31
32 In addition to new nodes, SoCamera and its derived nodes have been
33 updated to support the SoGeoOrigin node.
34
35 The coordinate system support in the above nodes are currently a bit
36 lacking (only a few systems/zones are supported), but this will improve
37 over time. API-changes should not be needed to extend this, so
38 patchlevel releases would be enough to add more coordinate systems.
39
40 The VRML2 counterparts of the above nodes, which would be a subpart of
41 implementing the GeoVRML extension, are not yet in development, but
42 they might show up for the next major release since a big part of the
43 implementation will be shared.
44
45 Note: These above SoGeo*-nodes make the UTM*-nodes in the SmallChange
46 library obsolete (for anyone who uses those), so the support for those
47 nodes will eventually be deprecated and removed. They won't be removed
48 over night though, but for new users: avoid starting to use the
49 UTM*-nodes at all cost to avoid having to waste time on a port down the
50 line.
51
53 Shader support is implemented through a set of new shader nodes, more
54 or less compatible with the corresponding TGS extensions. Beyond GLSL,
55 Coin also supports ARB shaders and Cg shaders (if the Cg library is
56 installed). However, we will only recommend the use of the shader
57 language GLSL and put our focus on that one.
58
59 New nodes:
60
61 • SoShaderProgram
62
63 • SoVertexShader
64
65 • SoFragmentShader
66
67 • SoGeometryShader
68
69 See also the 'Shaders in Coin' page for more information.
70
72 Support for rendering shadows has been added to Coin through a set of
73 shader-based nodes. The technique used is the Variance Shadow Maps
74 technique (http://www.punkuser.net/vsm/).
75
76 New nodes:
77
78 • SoShadowGroup
79
80 • SoShadowCulling
81
82 • SoShadowStyle
83
85 A lot of nodes have had their rendering code optimized for VBO usage,
86 giving great performance increases. However, this is not universally
87 enabled - it is necessary to organize the scene graphs in specific ways
88 for VBOs to be used.
89
90 See the VBO Rendering in Coin page for a detailed description.
91
92 Relevant classes:
93
94 • SoVertexProperty
95
96 • SoReorganizeAction
97
99 The set of Sb* classes in Coin has been expanded greatly, with most
100 notable a whole skew of SbVec and SbBox classes. The reasoning behind
101 this move was that historically these classes were just added as
102 needed, one by one, causing the stable branch of Coin and the
103 development branch of Coin to diverge and become more and more
104 incompatible as time went by. Also, extension nodes were created in
105 peripheral libraries that used these new classes from the Coin
106 development branch, and consequently couldn't be built gainst the
107 stable branch of Coin. With this preemptive class set expansion, we
108 hope to cause that the Coin stable branch and the Coin development
109 branch stay closer in sync over a longer period, and that the
110 incompatibility divergence will happen around major new feature sets
111 instead of around minor details.
112
113 New Sb*-classes: \break SbBox2i32, SbBox3i32, SbBox3d, SbVec2b,
114 SbVec2ub, SbVec2us, SbVec2i32, SbVec2ui32, SbVec3b, SbVec3ub, SbVec3us,
115 SbVec3i32, SbVec3ui32, SbVec4b, SbVec4ub, SbVec4s, SbVec4us, SbVec4i32,
116 SbVec4ui32, SbXfBox3d
117
118 Note: You can also find a good deal of these classes in TGS Inventor,
119 so this was also a TGS compatibility move.
120
122 The exact same reasoning as for the Sb*-classes goes for the field
123 classes.
124
125 New field classes: \break SoSFBox2s, SoSFBox2i32, SoSFBox2d, SoSFBox2d,
126 SoSFBox3i32, SoSFBox3d, SoSFColorRGBA, SoSFDouble, SoSFVec2b,
127 SoSFVec2i32, SoSFVec2d, SoSFVec3b, SoSFVec3i32, SoSFVec4b, SoSFVec4ub,
128 SoSFVec4s, SoSFVec4us, SoSFVec4i32, SoSFVec4ui32, SoSFVec4d,
129 SoMFColorRGBA, SoMFDouble, SoMFVec2b, SoMFVec2s, SoMFVec2i32,
130 SoMFVec2d, SoMFVec3b, SoMFVec3s, SoMFVec3i32, SoMFVec4b, SoMFVec4ub,
131 SoMFVec4s, SoMFVec4us, SoMFVec4i32, SoMFVec4ui32, SoMFVec4d
132
134 This node is added to make it possible to set up a custom camera with
135 full control over the view volume. SoFrustumCamera is basically a
136 mapping of the OpenGL glFrustum() method.
137
138 The typical use of SoFrustumCamera is in a CAVE or MultiPipe
139 environment where it's often necessary to set up cameras based on the
140 configuration of the different displays.
141
143 Below follows a non-exhaustive list of other, more minor, tweaks and
144 tidbits.
145
146 SoSearchAction on SoFile nodes
147 To facilitate control over whether an SoFile node should traverse its
148 children during an SoSearchAction traversal, two static methods have
149 been added to SoFile.
150
151 New functions:
152
153 • SoFile::setSearchOK() [static]
154
155 • SoFile::getSearchOK() [static]
156
157 SbTypeInfo<T> template type information library
158 For those who write generic code using C++ templates, a template type
159 information library has been added for the primitive Coin-types, so you
160 can use type relations for populating a template instead of needing
161 template parameters for all changing types of the template, or you can
162 write generic code on type attributes like the number of dimensions of
163 an SbVec class. SbTypeInfo<T> can be found in Inventor/SbTypeInfo.h.
164
165 Visual Studio Projects
166 The Visual Studio projects have been split into projects for separately
167 building, installing, uninstalling the Coin SDK, and document
168 generation. This was done primarily to be able to build without
169 automatically performing the installation procedure at the same time,
170 but also to offer other supplementary targets later like the doc-
171 generation project...
172
173 New features for Coin v2.4.0 are here.
174
175
176
177Version 2.5.0 Wed Jan 18 2023 coin250(3)