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