| 1 | OSG News (most significant items from ChangeLog) |
|---|
| 2 | ================================================ |
|---|
| 3 | |
|---|
| 4 | 17th August 2004 - OpenSceneGraph-0.9.7-2 |
|---|
| 5 | |
|---|
| 6 | Build fixes for VisualStudio6.0. |
|---|
| 7 | Fixes for osgFX registry support. |
|---|
| 8 | Fixes to osg::Image::flipVertical() adding support for mipmaps and |
|---|
| 9 | compressed textures. |
|---|
| 10 | DDS plugin now can vertically flip images by using "flip" Options string. |
|---|
| 11 | Added support in osgTerrain for reading imagery with color tables. |
|---|
| 12 | |
|---|
| 13 | |
|---|
| 14 | 9th August 2004 - OpenSceneGraph-0.9.7 |
|---|
| 15 | |
|---|
| 16 | >>> support for and generation of large scale geospatial databases, |
|---|
| 17 | >>> support for movies and examples of shadows and volume rendering. |
|---|
| 18 | |
|---|
| 19 | The 0.9.7 encompasses many improvements, bug fixes, new examples and |
|---|
| 20 | significant new functionality, the most notable of which is a new |
|---|
| 21 | osgTerrain library for generation of large scale geospatial databases. |
|---|
| 22 | |
|---|
| 23 | The new osgTerrain library and associated osgdem utility program |
|---|
| 24 | allows users to use moziacs of geospatial imagery and digital elevation |
|---|
| 25 | maps to generate a complete paged database which can be used with |
|---|
| 26 | standard OSG viewers, and users programs. By utilising GDAL to load the |
|---|
| 27 | imagery and DEM's a wide range of geospatial formats are supported. |
|---|
| 28 | |
|---|
| 29 | The TerraPage plugin has also been rewritten ontop of the OSG's |
|---|
| 30 | osg::PagedLOD and osgDB::DatabasePager which provides support for the |
|---|
| 31 | tile fallback mechanism to ensure that no holes or cracks appear in the |
|---|
| 32 | databases being roamed, and to achieve constant frame rate via load |
|---|
| 33 | balancing mechanisms with osgDB::DatabasePager. |
|---|
| 34 | |
|---|
| 35 | The osgDB::DatabasePager has been further improved to provide more |
|---|
| 36 | configurable load balancing which allows application developers to achieve |
|---|
| 37 | constant frame rates when using paged databases. |
|---|
| 38 | |
|---|
| 39 | Double Vec & Matrix classes & CoordinateSystemNode/EllipsoidModel class |
|---|
| 40 | have been introduced to better support browsing of large scale databases, |
|---|
| 41 | and to provide a mechanism for tracking the local up orientation when |
|---|
| 42 | roaming whole earth databases. |
|---|
| 43 | |
|---|
| 44 | osgUtil has been enhanced with: |
|---|
| 45 | - an improved triangle tipper class (osgUtil::TriStipVisitor), |
|---|
| 46 | - a new simplifier (osgUtil::Simplifer) for reducing triangle density of |
|---|
| 47 | osg::Geometry leaves (utilised by osgTerrain to provide simplification |
|---|
| 48 | of terrain tiles), |
|---|
| 49 | - improved and more configurable optimizer (osgUtil::Optimizer), |
|---|
| 50 | - a new utility class for compiling and releasing OpenGL objects |
|---|
| 51 | (osgUtil::GLObjectVisitor) replaces the previous and more limited |
|---|
| 52 | DisplayListVisitor. |
|---|
| 53 | |
|---|
| 54 | All the osgGA::MatrxManipulator's (used for camera manipulator etc) have |
|---|
| 55 | been revamped with usage of doubles internally, and with tracking of the |
|---|
| 56 | current CoordinateSystem if one is active, to be better support whole |
|---|
| 57 | earth databases. All the MatrixManipulators have been extend to allow |
|---|
| 58 | the setting of a user defined home position. Two new manipulators have |
|---|
| 59 | been introduced osgGA::TerrainManipulator, for roaming whole earth/terrain |
|---|
| 60 | databases, and osgGA::TrackerManipulator which allows the camera to be |
|---|
| 61 | attached to a node in the scene graph. |
|---|
| 62 | |
|---|
| 63 | Movie support under Linux and OSX via libMpeg3 and Quicktime respectively, |
|---|
| 64 | which extend the new osg::ImageStream base class which allows application |
|---|
| 65 | developers access to playing, pausing and rewinding movies. |
|---|
| 66 | |
|---|
| 67 | The conversion utility osgconv has been extended to allow compression of |
|---|
| 68 | textures and mipmap generation during conversion when writing to the native |
|---|
| 69 | .ive binary format. Texture compression and pre computer mipmaps enable |
|---|
| 70 | faster loading of databases and lower utilisation of memory resources. |
|---|
| 71 | |
|---|
| 72 | Write support added to JPG plugin. |
|---|
| 73 | |
|---|
| 74 | Write + 3D texture support added to DDS plugin. |
|---|
| 75 | |
|---|
| 76 | Pseudo loaders .trans, .rot and .scale have been added. |
|---|
| 77 | |
|---|
| 78 | Updated LWO, AC3D, BMP, IVE and FLT loaders. |
|---|
| 79 | |
|---|
| 80 | osg::TexGenNode has been added to provide a mechanism for positioning |
|---|
| 81 | OpenGL's texture coordinate generation planes. |
|---|
| 82 | |
|---|
| 83 | Fourteen new examples have been added: |
|---|
| 84 | |
|---|
| 85 | osgdem a utility for creating large scale geospatial paged |
|---|
| 86 | database |
|---|
| 87 | |
|---|
| 88 | osgphotoalbum an example of how to use PagedLOD to dynamic generate |
|---|
| 89 | geometry for paged in imagery |
|---|
| 90 | |
|---|
| 91 | osgbluemarble an example of how to build PagedLOD database for |
|---|
| 92 | paging imagery |
|---|
| 93 | |
|---|
| 94 | osgtesselate - an example of how to use osgUtil::Tesselate to |
|---|
| 95 | tessellate polygonal boundaries |
|---|
| 96 | |
|---|
| 97 | osgsimulation an example of how to use various features in osgSim. |
|---|
| 98 | |
|---|
| 99 | osgdepthshadow an example of how to implement shadows use depth |
|---|
| 100 | shadow textures. |
|---|
| 101 | |
|---|
| 102 | osgsimplifier an example of how to use the new osgUtil::Simplifier. |
|---|
| 103 | |
|---|
| 104 | osgspacewarp an example of how to create a special effect that |
|---|
| 105 | depends upon tracking the modelview matrix. |
|---|
| 106 | |
|---|
| 107 | osgdistortion an example of how to use prerendering of a texture to |
|---|
| 108 | create a distortion effect. |
|---|
| 109 | |
|---|
| 110 | osgsimple a bare bones example of how to create a simple viewer |
|---|
| 111 | using a Windowing toolkit, in this example using |
|---|
| 112 | Producer, but is written so the example could easily |
|---|
| 113 | be modified to work with other Windowing toolkit. |
|---|
| 114 | |
|---|
| 115 | osgkeyboardmouse adding to keyboard and mouse functionality on the |
|---|
| 116 | osgsimple base. |
|---|
| 117 | |
|---|
| 118 | osgsimplepager adding database paging support to the osgsimple |
|---|
| 119 | example. |
|---|
| 120 | |
|---|
| 121 | osgmovie an example which creates a quad to render a loaded |
|---|
| 122 | movie file with - requires the LibMpeg3 (Linux) or |
|---|
| 123 | Quicktime (OSX) plugin to work. |
|---|
| 124 | |
|---|
| 125 | osgvolume an example that reads a stack of 2d images to create |
|---|
| 126 | a 3D texture, and creates a scene graph using |
|---|
| 127 | standard OSG components (osg::ClipNode, |
|---|
| 128 | osg::TexGenNode, osg::Billboard and |
|---|
| 129 | osg::TexEnvCombine) to create a per per lit volume. |
|---|
| 130 | |
|---|
| 131 | |
|---|
| 132 | Wrapping up the complete 0.9.7 release is a wide range of smaller features |
|---|
| 133 | enhancement and many bug fixes. |
|---|
| 134 | |
|---|
| 135 | |
|---|
| 136 | 2nd October 2003 - OpenSceneGraph-0.9.6-2 |
|---|
| 137 | |
|---|
| 138 | >>> osgFX Special Effects nodekit (for bumping mapping & cartoon effects etc), support for double Matrix traversals, |
|---|
| 139 | >>> improved build support, thread safety and robustness. |
|---|
| 140 | |
|---|
| 141 | The new osgFX nodekit, written by Marco Jez, adds a set of decorator |
|---|
| 142 | nodes that add can be conveniently added above subgraphs in your scene |
|---|
| 143 | to add special a range of special rendering effects. Effects include |
|---|
| 144 | AnisotopicLight, BumpMapping, Scribe, Specular Highlights and Cartoon |
|---|
| 145 | rendering. |
|---|
| 146 | |
|---|
| 147 | Support for double Matrices has been added with the new Matrixd class, |
|---|
| 148 | and complimented by the a Matrixf class. The original Matrix class is |
|---|
| 149 | now a typedef which can be set to either Matrixf or Matrixd (which is |
|---|
| 150 | now the default), When the Matrix typedef is set to Matrixd and the OSG and |
|---|
| 151 | dependent apps are recompiled all internal operations such a cull traversals |
|---|
| 152 | will now be double with double matrices which much improved numerical |
|---|
| 153 | precision, making it ideal for datasets where a large values are contained |
|---|
| 154 | with transforms in the scene graph (such as with whole earth databases), |
|---|
| 155 | and when a transforms are nested which creates requires concatenation of |
|---|
| 156 | a number of matrices to get the final model view matrices. |
|---|
| 157 | |
|---|
| 158 | The osgGA::MatrixManipulators (which are used to control the camera |
|---|
| 159 | position) and osgProducer/OpenProducer have been moved across to using |
|---|
| 160 | exclusively double Matrices. This has been done to improve numerical |
|---|
| 161 | precision when computing camera positions, whilst having little impact |
|---|
| 162 | on performance since camera operations are only done a small number of |
|---|
| 163 | times per frame. |
|---|
| 164 | |
|---|
| 165 | osg::Quat now supports doubles by default, but also allows users to select |
|---|
| 166 | float version osg::Quat simply by changing the osg::Quat::value_type typedef. |
|---|
| 167 | |
|---|
| 168 | Work has been on OpenThreads and OpenProducer, in particular to improve |
|---|
| 169 | thread safety and robustness on the Win32 platform. Reported crashes |
|---|
| 170 | on exit from osgProducer::Viewer based apps, and freezes during runtime |
|---|
| 171 | have been fixed. |
|---|
| 172 | |
|---|
| 173 | Threading problems which caused crashes in recent updates of the Terrapage |
|---|
| 174 | loader have also been fixed, and additional internal changes have been made |
|---|
| 175 | to improve the Terrapage loader's ability to hit constant frame rates. |
|---|
| 176 | Support has also been added for loading light points directly from the |
|---|
| 177 | Terrapage database. |
|---|
| 178 | |
|---|
| 179 | A new .iv/.wrl loader plugin, written by Vivek Rajan, at Magic Earth, |
|---|
| 180 | has been added to the distribution which uses with OpenInventor or Coin |
|---|
| 181 | to load model, converting them into OSG equivalents. Coin has support |
|---|
| 182 | for VRML97 models, so can be used to import such models into the OSG. |
|---|
| 183 | Since the new plugin is dependent on OpenInventor or Coin the compilation |
|---|
| 184 | is optional, but off by default. To compile this plugin under Unix, set |
|---|
| 185 | the environmental variable USE_INVENTOR or USE_COIN and recompile. |
|---|
| 186 | Windows .dsp project file does to current exist, but should be |
|---|
| 187 | possible to add this. |
|---|
| 188 | |
|---|
| 189 | The .ive plugin has been improved with the addition of support for |
|---|
| 190 | osgSim light points, and various internal refinements to make it function |
|---|
| 191 | better on the various platforms supported by the OSG. Note, these changes |
|---|
| 192 | mean that the .ive format has has changed and is no longer compatible |
|---|
| 193 | with previous version of .ive. It is recommend that one recreates .ive |
|---|
| 194 | for the original source via osgconv or similar to ensure consistency. |
|---|
| 195 | |
|---|
| 196 | A JPEG2000 image plugin has added, written by Michael Gronager. The new jp2 |
|---|
| 197 | plugin uses the japser open source project to read and write JPEG2000 files. |
|---|
| 198 | |
|---|
| 199 | A scalar bar, and sphere segment helper classes have been added to osgSim, |
|---|
| 200 | the new osgscalarbar and osgspheresegment examples demonstrate how to use |
|---|
| 201 | these new features. |
|---|
| 202 | |
|---|
| 203 | To help handle running applications of graphics cards/drivers that exhibit |
|---|
| 204 | bugs with certain OpenGL extensions, support has been added to the GLextensions |
|---|
| 205 | code to allow extensions to be disabled via the new |
|---|
| 206 | osg::setGLExtensionDisableString(std::string) function or by setting an |
|---|
| 207 | OSG_GL_EXTENSION_DISABLE environmental variables. Follows is an example of |
|---|
| 208 | the disable string: |
|---|
| 209 | |
|---|
| 210 | set OSG_GL_EXTENSION_DISABLE = |
|---|
| 211 | "ATI:GL_SGIS_generate_mipmap;Sun:GL_EXT_texture_filter_anisotropic:" |
|---|
| 212 | |
|---|
| 213 | New examples include: |
|---|
| 214 | |
|---|
| 215 | osgforest - an example which demonstrates simple techniques for creating forests |
|---|
| 216 | osgfxbrowser - an example which demonstrates the various osgFX Effects available |
|---|
| 217 | osgscalabar - an example of how to set up the osgSim::ScalarBar. |
|---|
| 218 | osgspheresegment - an example of how to set up the osgSim::SphereSegement |
|---|
| 219 | osgpagelod - a very simply test program for setting up osg::PagedLOD/osgDB::DatabasePager |
|---|
| 220 | |
|---|
| 221 | 23rd July 2003 - OpenSceneGraph-0.9.5 |
|---|
| 222 | |
|---|
| 223 | >>> Support added for OpenGL2.0 shaders, native multi-threaded Database paging, |
|---|
| 224 | >>> high peformance binary format reading and writing, .dds compressed image |
|---|
| 225 | >>> loader and ARB_fragment_program and ARB_vertex_buffer_object extensions, |
|---|
| 226 | >>> improvements to the Terrex .txp and OpenFlight .flt loaders. |
|---|
| 227 | |
|---|
| 228 | The key new features of the 0.9.5 release are the new OpenGL2.0 nodekit, constant frame rate |
|---|
| 229 | database paging support, classes, and the new native .ive binary plugin which supports |
|---|
| 230 | both reading and writing of all core osg nodes, including inlining of compressed |
|---|
| 231 | and non-compressed imagery. |
|---|
| 232 | |
|---|
| 233 | The native database paging support, provided by the new osg::PageLOD and osgDB::DatabasePager, |
|---|
| 234 | achieves constant frame rate through threading of the database reading, and time based |
|---|
| 235 | incremental compile and delete of display lists, vertex_buffer_objects and texture objects. |
|---|
| 236 | A new TextureObjectManager class also caches a list of expired texture objects for reuse, |
|---|
| 237 | and allows new newly loading imagery to reuse expired texture objects, with the imagery |
|---|
| 238 | automatically subloaded to the reused texture objects. This reuse happens transparently |
|---|
| 239 | and benefits other OSG usages such as the OSG's Terrapage loader. |
|---|
| 240 | |
|---|
| 241 | To provide support multi-thread operation of the OSG, such as multi-thread database paging |
|---|
| 242 | and multi-threaded, multi-window graphics enabled by OpenProducer, the OpenSceneGraph and |
|---|
| 243 | OpenProducer have now adopted the OpenThreads threading library, osgDB and osgProducer now |
|---|
| 244 | depend upon it. OpenThreads is open source, light weight, cross platform C++ threading |
|---|
| 245 | which encapsulates the low level, platform specific threading API calls. Currently pthreads |
|---|
| 246 | under Unix and Win32 threads under Windows are supported, with Sgi sproc threads to be |
|---|
| 247 | released very soon. The OpenThreads project website can be found at http://openthreads.sf.net. |
|---|
| 248 | |
|---|
| 249 | The new .ive binary plugin was developed by Uni-C's VR-Center, and kindly submitted as |
|---|
| 250 | open source, adds support for binary reading and writing OSG nodes drawable and state |
|---|
| 251 | (including compressed/mipmapped) textures. The .ive format produces a much faster |
|---|
| 252 | load times and smaller file size then native ASCII .osg format. Load times for .ive |
|---|
| 253 | files are also 10-20x faster then equivalent OpenFlight .flt and load in an already |
|---|
| 254 | optimized scene graph form making it much more suitable for paging. Files can be |
|---|
| 255 | converted easily using the osgconv utility : osgconv myfile.flt myfile.ive |
|---|
| 256 | |
|---|
| 257 | The new osgGL2 nodekit library adds support for the OpenGL2.0 vertex ProgramObect and fragment |
|---|
| 258 | ShaderObject's recently ratified by the OpenGL ARB, . The osgGL2 uses the extension have local |
|---|
| 259 | prototypes which allow them to be compiled even in the absence of OpenGL headers that don't |
|---|
| 260 | support the GL2 extension, allowing to port to all platform, and at runtime the extensions are |
|---|
| 261 | queried for and used if available. At time of release only 3DLabs WildcatVP series supported |
|---|
| 262 | this extension at runtime, but other graphics cards and manufactures will be releasing GL2 |
|---|
| 263 | extension very soon and will be automatically supported by osgGL2. The osgGL2 was developed |
|---|
| 264 | by Mike Weiblen at 3DLabs whom have kindly submitted osgGL2 as open source and for inclusion |
|---|
| 265 | with the OSG distribution. |
|---|
| 266 | |
|---|
| 267 | The ARB_fragment_program, ARB_vertex_buffer_object and ARB_vertex_program attributes are |
|---|
| 268 | also now supported in core osg library. The new osg::FragmentProgram state attribute |
|---|
| 269 | encapsulates the ARB_fragment_program which is supported by the recent graphics cards |
|---|
| 270 | from NVidia, ATI and 3DLabs. Support for ARB_vertex_buffer_object and ARB_vertex_program |
|---|
| 271 | attributes have been added to the osg::Geometry class. The ARB_vertex_buffer_object extension |
|---|
| 272 | can boost performance by as much as 50% when working on geometry bound data sets. |
|---|
| 273 | |
|---|
| 274 | Two new image loaders, dds and pnm, and a 3dc point cloud have been added. The .dds plugin |
|---|
| 275 | adds support for compressed & mipped mapped imagery, making it ideal for applications where |
|---|
| 276 | large texture sizes or database paging is required. The pnm image loader reads the |
|---|
| 277 | pnm, pgm and pbm image formats. See http://netghost.narod.ru/gff/vendspec/pbm/ for details. |
|---|
| 278 | |
|---|
| 279 | The Terrapage .txp plugin been updated to include support for multi-texturing, layers and billboards |
|---|
| 280 | and includes improvements to multi-threaded pager, which has also been ported over to use OpenThreads. |
|---|
| 281 | The OpenFlight .flt plugin has also been improved and now support detail textures via multi-texturing. |
|---|
| 282 | |
|---|
| 283 | TessellationHints now supported by ShapeDrawable which allow the shape primitives to be rendered |
|---|
| 284 | are vary levels of detail. |
|---|
| 285 | |
|---|
| 286 | Supported has been added for auto scaling and rotating text into osgText. |
|---|
| 287 | |
|---|
| 288 | Five new examples have been included in the distribution: |
|---|
| 289 | |
|---|
| 290 | osgtexturerectangle illustrates how to use the osg::TextureRectangle which encapsulates |
|---|
| 291 | the NV_texture_rectangle extension. |
|---|
| 292 | |
|---|
| 293 | osgprerendercubemap illustrates how to use pre rendering imagery to osg::TextureCubeMap |
|---|
| 294 | for tasks such as building a environmental texture maps. |
|---|
| 295 | |
|---|
| 296 | slideshow3D is a presentation tool which use a scene graph to store a render set of slides, each |
|---|
| 297 | slide containing layers which can contain bullet points, paragraph, imagery and 3d animated |
|---|
| 298 | models - and is effectively a 3D power point. The presentations can be built separately and stored in a .osg file or created by |
|---|
| 299 | slideshow3D via an xml file, two examples - introduction.xml and models.xml, which are included |
|---|
| 300 | in the OpenSceneGraph-Data-0.9.5 data distribution. slideshow3D depends upon libxml2 for parsing |
|---|
| 301 | the xml files. |
|---|
| 302 | |
|---|
| 303 | osgpoints uses the osg::Point state attribute to attenuate and control point size and any points |
|---|
| 304 | loaded by the application. This is a useful way of visualizing point data clouds. |
|---|
| 305 | |
|---|
| 306 | osgdemeter is example of how to integrate the Demeter, OSG using osgProducer::Viewer as a viewer |
|---|
| 307 | class. This example depends upon the demeter terrain engine, which can be download from |
|---|
| 308 | http://www.terrainengine.com. |
|---|
| 309 | |
|---|
| 310 | Camera style convenience set and get methods to osgUtil::SceneView, consolidating |
|---|
| 311 | previous functionality that was provided by both osg::SceneView and osg::Camara into one place. |
|---|
| 312 | This move has made osg::Camera redundant so has it been removed to avoid confusion, |
|---|
| 313 | usage inconsistencies and bloat of core libraries. |
|---|
| 314 | |
|---|
| 315 | The long time deprecated osg::GeoSet has been removed, to aid migration of old .osg datasets |
|---|
| 316 | osgconv has a copy of GeoSet and the .osg support for it so is able to convert any remaining |
|---|
| 317 | .osg database which contained GeoSet's. |
|---|
| 318 | |
|---|
| 319 | |
|---|
| 320 | |
|---|
| 321 | 28th April 2003 - OpenSceneGraph-0.9.4-2 |
|---|
| 322 | |
|---|
| 323 | >>> Multi-threaded, multi-pipe support via integration with OpenProducer, |
|---|
| 324 | >>> 64bit Linux support for Intel Intanium and AMD Opteron, |
|---|
| 325 | >>> new osgText library with greater performance, and thread safety, |
|---|
| 326 | >>> new DDS plug-in for compressed and non-compressed images, |
|---|
| 327 | >>> new MD2 plug-in adds support for animate Quake character and |
|---|
| 328 | >>> support added for NV_texture_rectangle. |
|---|
| 329 | |
|---|
| 330 | The most significant new feature is the osgProducer library that adds |
|---|
| 331 | tight integration with OpenProducer, providing the OpenSceneGraph with a |
|---|
| 332 | scalable, configurable and portable framework for developing real-time |
|---|
| 333 | and interactive graphics applications. The scalability afforded by |
|---|
| 334 | OpenProducer allows applications to be developed which run seamlessly |
|---|
| 335 | on single pipe machines up to multi-pipe machines such as Sgi Onyx |
|---|
| 336 | IR system, and Sun Zulu systems. |
|---|
| 337 | The osgProducer/OpenProducer framework automatically handles the |
|---|
| 338 | multi-threading of cull-draw pairs and GUI events. |
|---|
| 339 | |
|---|
| 340 | All the example programs have been ported over from being based on |
|---|
| 341 | GLUT to using osgProducer (osgGLUT can now be found in the bazaar |
|---|
| 342 | section on the website). The move to osgProducer allows all the examples |
|---|
| 343 | to scale from running on laptops up to multiple CPU and graphics pipe systems. |
|---|
| 344 | The configuration of threading and multiple camera views can all be done |
|---|
| 345 | via ASCII configuration files, no need to recompile. A number of |
|---|
| 346 | new examples have also been added or revamped, bringing the total to 42. |
|---|
| 347 | |
|---|
| 348 | Also in the theme of increasing scalability there is support for 64bit Linux for both |
|---|
| 349 | IA64 (Intel Itanium) and x86-64 (AMD Opteron) which compliments the existing |
|---|
| 350 | support for Solaris and IRIX 64 bit compilation. 64 bit supports allows |
|---|
| 351 | the use of very large data sets, and potential performance improvements. |
|---|
| 352 | |
|---|
| 353 | To help support development teams working with multiple build configuration, |
|---|
| 354 | the makefile system has been extended to allow multiple build targets to be |
|---|
| 355 | built from one source code base. All makefiles are also now named GNUmakefile |
|---|
| 356 | which ensures that they are only run by gmake to avoid an confusion on system |
|---|
| 357 | where gmake isn't the default make tool. |
|---|
| 358 | |
|---|
| 359 | A completely new osgText implemention has been developed which is simpler |
|---|
| 360 | to use, faster, and thread safe. Support for high quality true type fonts |
|---|
| 361 | has now been moved to a freetype plug-in which is dynamically loaded on demand, |
|---|
| 362 | with the core osgText library providing a default font when the plug-in is |
|---|
| 363 | unavailable. Moving the freetype dependency out of the osgText library makes |
|---|
| 364 | it just dependant on OpenGL and Standard C++ like the rest of the core libraries, |
|---|
| 365 | allowing osgText to compile by default on all platforms. |
|---|
| 366 | |
|---|
| 367 | Improved thread safety has also been achieved in the core osg and osgUtil libraries |
|---|
| 368 | making work on multiple CPU/multi-pipe systems robust and with improved performance. |
|---|
| 369 | |
|---|
| 370 | Two new plug-ins have been added, for loading DDS and MD2 data formats. The DDS plug-in |
|---|
| 371 | is for loading compressed and non-compressed images. The MD2 plug-in loads Quake |
|---|
| 372 | animated characters. |
|---|
| 373 | |
|---|
| 374 | osg::TextureRectangle class has been added, which encapsulates the |
|---|
| 375 | NV_texture_rectangle and EXT_texture_rectangle extensions. This is particularly |
|---|
| 376 | useful for render to texture algorithms, and dynamic paging of images such as for |
|---|
| 377 | rendering video streams. |
|---|
| 378 | |
|---|
| 379 | Support for automatic subloading of osg::Texture2D textures has been added |
|---|
| 380 | so that when image data is updated the corresponding OpenGL texture is |
|---|
| 381 | automatically updated - no need for callbacks. Also added to the osg::Texture |
|---|
| 382 | classes is the option of automatic unref'ing of texture image data once the data has |
|---|
| 383 | been download to all active OpenGL graphics contexts. |
|---|
| 384 | |
|---|
| 385 | A new osgUtil::DelaunayTriangulator utility class has been added. This is ideal for |
|---|
| 386 | creating optimal triangular meshes from unconnected data points. |
|---|
| 387 | |
|---|
| 388 | Two new classes, osg::ArgumentParser and osg::ApplicationUsage, have been introduced |
|---|
| 389 | to convineiently and robustly parse command line arguments and |
|---|
| 390 | report command line usage, environmental variables and keyboard and mouse bindings |
|---|
| 391 | used by applications. Running any of the examples with -h or --help will report |
|---|
| 392 | full details example usage. Keyboard and Mouse bindings usage is now also available as |
|---|
| 393 | a HUD on all examples, simply press 'h' while the app is running to |
|---|
| 394 | bring up help. |
|---|
| 395 | |
|---|
| 396 | A database cache in the osgDB library has been added, along with a clean up |
|---|
| 397 | of memory management in the OpenFlight loader, make development of |
|---|
| 398 | dynamic paging of databases easier and more robust. |
|---|
| 399 | |
|---|
| 400 | Support for early abort of rendering has been added, which is useful for |
|---|
| 401 | interactive applications which occasionally have rendering that takes that long |
|---|
| 402 | enough (i.e.several seconds) that end users may wish to abort during the drawing. |
|---|
| 403 | |
|---|
| 404 | There have also been many general API improvements and bug fixes, too many to enumerate, |
|---|
| 405 | but all go to solidify the quality of the scene graph and its accompanying libraries. |
|---|
| 406 | |
|---|
| 407 | The combination of new features, robustness and scalability mark this release as a |
|---|
| 408 | significant step towards 1.0. |
|---|
| 409 | |
|---|
| 410 | |
|---|
| 411 | |
|---|
| 412 | 24th January 2003 - OpenSceneGraph-0.9.3.tar.gz |
|---|
| 413 | |
|---|
| 414 | >>> adds support navigational light points, multi-threaded dynamic |
|---|
| 415 | >>> paging of Terrapage databases, ARB_vertex_program extension, |
|---|
| 416 | >>> DirectD .x model loader, and integration with OpenProducer for |
|---|
| 417 | >>> multi-threaded, multi-window/pipe rendering. |
|---|
| 418 | |
|---|
| 419 | Added osgProducer library which integrates the OpenSceneGraph seemlessly |
|---|
| 420 | with OpenProducer to provide runtime configurable management of windows |
|---|
| 421 | and multipipe graphic systems. The osgproducer demo illustrate how |
|---|
| 422 | developers can write applications very simply that harness the power |
|---|
| 423 | of the OpenProducer and OpenSceneGraph in an extremely flexible way. |
|---|
| 424 | OpenProducer can be downloaded from: |
|---|
| 425 | http://www.andesengineering.com/BlueMarbleViewer/producer_install.html |
|---|
| 426 | |
|---|
| 427 | Support added for dynamic paging of Terrage databases, the required |
|---|
| 428 | multi-threading is set up by defult. All the end user application need |
|---|
| 429 | to do is load the database and the paging then happens automatically - |
|---|
| 430 | without any need for intervention by the users application. |
|---|
| 431 | |
|---|
| 432 | Addition of osgSim which is NodeKit designed for visual simulation |
|---|
| 433 | market, currently features high fidelity light points support. Light |
|---|
| 434 | point sectors, blink sequences and groups, and light point fading are |
|---|
| 435 | all supported. |
|---|
| 436 | |
|---|
| 437 | From Brede Johansen, support added for the ARB VertexProgram extension |
|---|
| 438 | with osgvertexprogram demo showing reflection and refraction in action, and |
|---|
| 439 | osgpbuffer demo for Win32. |
|---|
| 440 | |
|---|
| 441 | From Ulrich Hertlein, new DirectX .x model loader. |
|---|
| 442 | |
|---|
| 443 | From Tree, Support for encoded text types in osgText. |
|---|
| 444 | |
|---|
| 445 | New osgshadowtexture demo which illustrates how to create |
|---|
| 446 | dynamic shadow textures in your scene. |
|---|
| 447 | |
|---|
| 448 | New osglogo demo - features anti-aliased TrueType text and animation. |
|---|
| 449 | |
|---|
| 450 | The app phase of operations on the scene graph has been renamed |
|---|
| 451 | the update phase to make its function clearer. The main phases are now |
|---|
| 452 | named now does update, cull, draw. The AppVisitor, set/getAppCallback etc |
|---|
| 453 | have be renamed UpdateVisitor, set/getUpdateCallback etc. |
|---|
| 454 | |
|---|
| 455 | Removed the osg/ManagerManger and associated #define osgNew's, this has |
|---|
| 456 | been done to simplify users code and to solve the lack of thread safety |
|---|
| 457 | that was causing problems with the MemoryManager. |
|---|
| 458 | |
|---|
| 459 | Support added for reading and writing of callbacks in the .osg format. |
|---|
| 460 | |
|---|
| 461 | Support added for reading and writing of osg::Shapes in the .osg format. |
|---|
| 462 | |
|---|
| 463 | Support added for reading OpenFlight comment records into osg::Node description |
|---|
| 464 | fields. |
|---|
| 465 | |
|---|
| 466 | Improvements to the GEO loaders. |
|---|
| 467 | |
|---|
| 468 | Numerous bug fixes and API refinements. |
|---|
| 469 | |
|---|
| 470 | |
|---|
| 471 | 13th November 2002 - OpenSceneGraph-0.9.2.tar.gz |
|---|
| 472 | |
|---|
| 473 | >>> New AC3D and GEO loaders, new Shape primitives, improved OpenFlight support. |
|---|
| 474 | |
|---|
| 475 | From Geoff Michel, AC3D .wc and Carbon Graphics GEO .geo loaders. |
|---|
| 476 | |
|---|
| 477 | Support for multi-texturing added to OpenFlight loader. |
|---|
| 478 | |
|---|
| 479 | LOD has been revamped to allow independent min and max ranges for |
|---|
| 480 | each LOD child, bringing it inline with the OpenFlight style LOD |
|---|
| 481 | representation. |
|---|
| 482 | |
|---|
| 483 | Switch has been revamped to allow independent switching on or off of |
|---|
| 484 | each Switch child, bringing it inline with the OpenFlight style Switch |
|---|
| 485 | representation. |
|---|
| 486 | |
|---|
| 487 | New osg::Shape geometry primitives added which allow the specification |
|---|
| 488 | of geometry in a form that can accelerate collision detection, and as |
|---|
| 489 | a way of specifying the geometry to tessellate. Shapes include |
|---|
| 490 | Sphere, Oriented Box, Cone, Cylinder, Grid, TriangleMesh, ConvexHull |
|---|
| 491 | and CompositeShape which allows the storage of a hierarchy of shapes. |
|---|
| 492 | |
|---|
| 493 | Geometry has been extended to all per primitive bindings and |
|---|
| 494 | per primitive set bindings of attributes, and indexing of attributes |
|---|
| 495 | with the same or different index lists for each attribute list. |
|---|
| 496 | |
|---|
| 497 | From Macro Jez, new cubemap helper classes. |
|---|
| 498 | |
|---|
| 499 | Support added for handling different extensions on different graphics |
|---|
| 500 | contexts. |
|---|
| 501 | |
|---|
| 502 | Draw and Sort callbacks added to osg::RenderStage. |
|---|
| 503 | |
|---|
| 504 | Added PolygonStipple class. |
|---|
| 505 | |
|---|
| 506 | Further refinement of class names and method calls: |
|---|
| 507 | Renamed classes : |
|---|
| 508 | |
|---|
| 509 | Primitive -> PrimitiveSet |
|---|
| 510 | |
|---|
| 511 | Renamed methods : |
|---|
| 512 | |
|---|
| 513 | Geometry::addPrimitive(..) -> addPrimitiveSet(..) |
|---|
| 514 | Drawable::drawImmediateMode(..) -> drawImplementation(..) const |
|---|
| 515 | Drawable::DrawCallback::drawImmediateMode(..) -> drawImplementation(..) const |
|---|
| 516 | |
|---|
| 517 | |
|---|
| 518 | 30th August 2002 - OpenSceneGraph-0.9.1.tar.gz |
|---|
| 519 | |
|---|
| 520 | >>> Support added for 1D & 3D textures, texture env combiners, secondary color and fog coords, DOFTransform and Sequence nodes. Inventor/VRML and LWO2 loaders added and the a port HP-UX! |
|---|
| 521 | |
|---|
| 522 | Despite only 6 weeks passing between 0.9.0 and this latest 0.9.1 release |
|---|
| 523 | there has been a number of significant new features, API clean ups and |
|---|
| 524 | bug fixes. Follows is a quick run through the key improvements. |
|---|
| 525 | |
|---|
| 526 | Addition of osg::Texture1D, Texture2D & Texture3D classes, Texture2D replaces |
|---|
| 527 | the original osg::Texture, which has now become a pure virtual base class. All |
|---|
| 528 | Texture classes, including TextureCubeMap are derived from this base class.. |
|---|
| 529 | |
|---|
| 530 | New osgtexture1D and osgtexture3D demos demonstrate the new texture classes in |
|---|
| 531 | action. |
|---|
| 532 | |
|---|
| 533 | The build system has been updated to support HP-UX. This adds one of the last |
|---|
| 534 | remaining mainstream platforms supported. |
|---|
| 535 | |
|---|
| 536 | A new Inventor/VRML1.0 loader was added. The inventor format has been requested |
|---|
| 537 | on numerous occasions, so this is a welcome addition. |
|---|
| 538 | |
|---|
| 539 | Support added to lwo plugin for loading the new lwo2 format. |
|---|
| 540 | |
|---|
| 541 | osg::TexEnvCombine implemented texture_env_combine and texture_env_crossbar |
|---|
| 542 | and texture_env_dot3 extensions. |
|---|
| 543 | |
|---|
| 544 | osg::TexEnv texture_env_add added. |
|---|
| 545 | |
|---|
| 546 | A osg::Sequence node has finally been implemented. It is accompanied by a |
|---|
| 547 | demo, osgsequence. |
|---|
| 548 | |
|---|
| 549 | osg::DOFTransformNode implemented. |
|---|
| 550 | |
|---|
| 551 | Support for OpenFlight15.7 added, DOFTransforms and general enhancements and |
|---|
| 552 | bug fixes. |
|---|
| 553 | |
|---|
| 554 | New PROTECTED mode for protecting local state mode and attributes from be |
|---|
| 555 | overridden from state above it in the scene graph. |
|---|
| 556 | |
|---|
| 557 | Support for fog coord and secondary colors extensions added to osg::Geometry. |
|---|
| 558 | |
|---|
| 559 | osg::Billboard has been improved to allow rotations around all axes, as well |
|---|
| 560 | as point rotations. Check osgbillboard for a new improved demo. |
|---|
| 561 | |
|---|
| 562 | The osglight example has been improved by utilizing AnimationPath and |
|---|
| 563 | PositionAttitudeTransform to keep light sources in motion. |
|---|
| 564 | |
|---|
| 565 | osg::AnimationPath improved, now allowing swing and looping behavior and |
|---|
| 566 | with two new app callbacks which can update PositionAttitudeTransform |
|---|
| 567 | and MatrixTransform respectively. |
|---|
| 568 | |
|---|
| 569 | Support for writing osg::Image's to .rgb format added. |
|---|
| 570 | |
|---|
| 571 | To keep the overall API clean, and the following items have been |
|---|
| 572 | renamed and deprecated parts of the API have been removed: |
|---|
| 573 | |
|---|
| 574 | Renamed classes: |
|---|
| 575 | |
|---|
| 576 | EarthSky -> ClearNode |
|---|
| 577 | Transparency -> BlendFunc |
|---|
| 578 | Texture -> Texture2D (old style subload parameters removed) |
|---|
| 579 | |
|---|
| 580 | Method's changed |
|---|
| 581 | |
|---|
| 582 | Matrix -> makeRotate(..) euler angles parameters generalized. |
|---|
| 583 | Quat -> makeRotate(..) euler angles parameters generalized. |
|---|
| 584 | |
|---|
| 585 | BoundingBox -> isValid() renamed valid() |
|---|
| 586 | BoundingSphere -> isValid() renamed valid() |
|---|
| 587 | |
|---|
| 588 | StateAttribute -> OVERRIDE_OFF & OVERRIDE_ON which were short hand |
|---|
| 589 | versions of OVERRIDE | OFF and OVERRIDE | ON |
|---|
| 590 | removed, as the meaning of the bitmask was |
|---|
| 591 | often confused by the short hand notation. |
|---|
| 592 | |
|---|
| 593 | |
|---|
| 594 | Transform -> setMatrix/getMatrix() etc methods removed, |
|---|
| 595 | Transform becoming the transform base class, |
|---|
| 596 | with MatrixTransform taking over all the original |
|---|
| 597 | functionality. |
|---|
| 598 | |
|---|
| 599 | |
|---|
| 600 | 19th July 2002 - OpenSceneGraph-0.9.0.tar.gz |
|---|
| 601 | |
|---|
| 602 | >>> OpenSceneGraph goes beta - Multitexturing, Occlusion Culling, Particles and much more added! |
|---|
| 603 | |
|---|
| 604 | This release marks the beginning of the beta phase of the OpenSceneGraph |
|---|
| 605 | development, which means that all the major core features are now |
|---|
| 606 | in the scene graph, and 1.0 is not far away. Its performance, features |
|---|
| 607 | and portability already compares very favorably to other scene graphs, |
|---|
| 608 | both comerical and open source. |
|---|
| 609 | |
|---|
| 610 | Multi-texturing support added to osg::StateSet, osg::Geometry, osg::State |
|---|
| 611 | and txp loader, so multi-texturing can now be done with very little coding |
|---|
| 612 | from the user - all you need to do is specify the texture unit to use |
|---|
| 613 | when setting texturing state and texture coordinates and the rest is |
|---|
| 614 | handled automatically by the scene graph! |
|---|
| 615 | |
|---|
| 616 | The new osg::Geometry classes which supersedes the old Performer style |
|---|
| 617 | osg::GeoSet, support multi-texturing, and uses sharable osg::Arrays which |
|---|
| 618 | utilize std::vector<> for data storage and manipulation. |
|---|
| 619 | |
|---|
| 620 | Shadow volume occlusion culling adding to the core OSG, developed as a |
|---|
| 621 | collobaration between Mike Connell and Robert Osfield. Our implementation |
|---|
| 622 | uses convex planer occluders, with support for holes to allow larger |
|---|
| 623 | and more effective occluders to be used. The approach is software |
|---|
| 624 | based so it 100% portable, and by culling during the cull traversal |
|---|
| 625 | both CPU and GPU loads are significantly reduced, making it an extremely |
|---|
| 626 | powerful feature for large scale urban and indoor visulisation. |
|---|
| 627 | |
|---|
| 628 | osgParticle developed by Marco Jez adds support for a range of particle |
|---|
| 629 | effects such smoke, fires, engine plumes, fountains, fire works, and |
|---|
| 630 | is fully customizable to produce your own favorite effects. osgParticle |
|---|
| 631 | is a NodeKit (see below) which can be directly linked to in your |
|---|
| 632 | application to allow you to create particle effects by hand, or have |
|---|
| 633 | the library dynamically loaded in when you load a database which contains |
|---|
| 634 | particle effects. |
|---|
| 635 | |
|---|
| 636 | osgGA (Gui Abstraction) library written by Neil Salter adds classes for |
|---|
| 637 | adapting different GUI toolkits to work with a standard set of manipulators for |
|---|
| 638 | modifying the scene, such as camera and state manipulators. |
|---|
| 639 | |
|---|
| 640 | Support has been added to the plugin architecture to facilitate the |
|---|
| 641 | development of NodeKits - add on libraries which can used directly |
|---|
| 642 | in your code, or loaded indirectly when loading from file. The |
|---|
| 643 | later allows you to load a .osg file with text or particle effects |
|---|
| 644 | in them,the plugin architecture automatically loads the required |
|---|
| 645 | library which supports these features. |
|---|
| 646 | |
|---|
| 647 | A range of new demos have been as code examples, and to demonstrate |
|---|
| 648 | the range of features that OpenSceneGraph delivers: |
|---|
| 649 | |
|---|
| 650 | osgoccluder - demonstrates ocllusion culling, and has a mode |
|---|
| 651 | which allows the users to interactively create |
|---|
| 652 | their own convex planer occluders. |
|---|
| 653 | osghud - how to mix head up display with 3d views. |
|---|
| 654 | osgparticle - shows the new osgParticle node kit in action. |
|---|
| 655 | osgprerender - pre renders and scene then textures the result onto |
|---|
| 656 | an animated flag. |
|---|
| 657 | osgcallback - examples of the full range of callbacks that you |
|---|
| 658 | can use to add dynamic behaviors to your scene graph. |
|---|
| 659 | osglight - a simple example of how to set up spot and position |
|---|
| 660 | lights in the scene. |
|---|
| 661 | osgclip - illustrates how to add clip planes to you scene. |
|---|
| 662 | osggeometry - examples of the different ways to set up primitives |
|---|
| 663 | and vertex/color/normal and texture attributes in |
|---|
| 664 | the new osg::Geometry class. |
|---|
| 665 | osgmultitexture - a simple example which adds a spherical reflection |
|---|
| 666 | map to a whole scene using the second texture unit |
|---|
| 667 | if one exists. |
|---|
| 668 | |
|---|
| 669 | osg::Drawable::PrimtiveFunctor has also been added to allow querrying |
|---|
| 670 | of primitive data with Drawables subclasses without requiring knowledge |
|---|
| 671 | of the types of Drawable subclasses that exists. This decoupling makes |
|---|
| 672 | it a very powerful and flexible utility. |
|---|
| 673 | |
|---|
| 674 | |
|---|
| 675 | 26th April 2002 - OpenSceneGraph-0.8.45.tar.gz |
|---|
| 676 | |
|---|
| 677 | >>> Support added for Solaris, texture cube mapping & muliple projections. |
|---|
| 678 | |
|---|
| 679 | The OpenSceneGraph now has a new Makefile system which supports all Unix |
|---|
| 680 | compilation including the new addition to the family - Solaris! |
|---|
| 681 | |
|---|
| 682 | OpenSceneGraph welcomes Solaris to the list of supported platforms. This |
|---|
| 683 | release puts all of the OpenSceneGraph functionality at the fingertips of |
|---|
| 684 | Sun Microsystem's customers and developers. Solaris users can now have |
|---|
| 685 | the benefit of a high performance scene graph for visual simulation, |
|---|
| 686 | virtual reality, scientific visualization, CAD, and architectural |
|---|
| 687 | walk-throughs. Many thanks to Sun for providing resources for the port. |
|---|
| 688 | |
|---|
| 689 | Additional html documentation has been added to the distribution to |
|---|
| 690 | make it easier to get an understanding of scene graph technology and |
|---|
| 691 | the project itself and how to make use of it. |
|---|
| 692 | |
|---|
| 693 | Support has also been added for OpenGL's texture cube mapping which |
|---|
| 694 | is ideal for accurate environmental reflections and much more. |
|---|
| 695 | |
|---|
| 696 | The scene graph has been extended to allow multiple projection (via |
|---|
| 697 | the new osg::Projection node) and viewports within one scene graphs, |
|---|
| 698 | this makes it much easier to set up head up displays, and we have |
|---|
| 699 | an example to demonstrate how easy it is - osghud. |
|---|
| 700 | |
|---|
| 701 | The osgUtil::CullVisitor and osgUtil::SceneView has been revamped |
|---|
| 702 | removing the dependency on osg::Camera, which is now simply an |
|---|
| 703 | option for SceneView rather than a requirement. This allows users |
|---|
| 704 | to set the camera entirely with the scene graph or create their own |
|---|
| 705 | camera classes and use them with SceneView. The existing osg::Camera |
|---|
| 706 | has also been simplified as support for setting projection and |
|---|
| 707 | modelview matrices have been moved out to the cull traversal. |
|---|
| 708 | |
|---|
| 709 | Several sets of node callbacks have been added, including a Cull |
|---|
| 710 | NodeCallback on each Node, ComputeTransformCallback on Transform |
|---|
| 711 | Nodes, EvaluateLODCallback on LOD nodes, ComputeBillboardCallback |
|---|
| 712 | on Billboard nodes. These make it my easier to customize the |
|---|
| 713 | scene graphs behavior at runtime. |
|---|
| 714 | |
|---|
| 715 | osg::Image::readPixels() and support for writing .bmp files has been |
|---|
| 716 | added which has made it easy to add screen capture the any OpenSceneGraph |
|---|
| 717 | application. This feature is demonstrated in the scene graph viewer |
|---|
| 718 | which comes with the distribution - just press 'O' to output a screenshot. |
|---|
| 719 | |
|---|
| 720 | Finally, include/osg/MemoryManager has been added which overrides new |
|---|
| 721 | and delete for debug builds. The override new and delete track allocations |
|---|
| 722 | and deallocations, ensure they are matched, checked for memory under and |
|---|
| 723 | overruns, and outputs a memleaks.log file on the results of executing |
|---|
| 724 | your applications. This help track down a number of memory leaks and |
|---|
| 725 | unmatched new and deletes within the OpenSceneGraph and should make |
|---|
| 726 | it easier to do with users applications as well. |
|---|
| 727 | |
|---|
| 728 | All in all, the OpenSceneGraph is now more portable, easier to |
|---|
| 729 | customize, cleaner and more robust. Beta release and 1.0 is now not |
|---|
| 730 | far away! |
|---|
| 731 | |
|---|
| 732 | |
|---|
| 733 | 24th February 2002 - osg-0.8.44.tar.gzosg- |
|---|
| 734 | |
|---|
| 735 | >>> Support added for Mac OSX, Cygwin and MinGW, and new TerraPage loader. |
|---|
| 736 | |
|---|
| 737 | The major item for this release is the completion of the Mac OSX port, |
|---|
| 738 | thanks to Phil Atkin and others for making this happen. |
|---|
| 739 | |
|---|
| 740 | Also added to support for Cygwin and MinGW builds which gives Windows |
|---|
| 741 | users a free and robust alternative to the Visual C++, which we |
|---|
| 742 | have Norman Vine to thank. |
|---|
| 743 | |
|---|
| 744 | Funtionality wise there has been a great deal of work behind the scenes |
|---|
| 745 | putting in place a flexible and extensible framework for handling |
|---|
| 746 | transform nodes, users can now extend the osg::Transform node through |
|---|
| 747 | subclassing or via callbacks. This work will underpin future work |
|---|
| 748 | on moving camera setup into the scene graph, and environmental effects |
|---|
| 749 | such as cloud layers, ground planes, stars and earth sky implementations |
|---|
| 750 | which are planned for the next release. |
|---|
| 751 | |
|---|
| 752 | Callbacks and virtual methods have also been added to the osg::LOD & |
|---|
| 753 | osg::Billboard to allow users to customize their behavior. Draw |
|---|
| 754 | callbacks have also been added to allow customization of osg::Drawables |
|---|
| 755 | at runtime. |
|---|
| 756 | |
|---|
| 757 | The Open Flight .flt loader has undergone a number of improvements |
|---|
| 758 | including support for instancing and billboards. |
|---|
| 759 | |
|---|
| 760 | New TerraPage (.txp) loader and OpenDX writer (.dx) plugins have been added. |
|---|
| 761 | |
|---|
| 762 | Support for the clone operation on osg::Object's has been expanded |
|---|
| 763 | to allow cloneType() - a simple clone an blank object of the same type, |
|---|
| 764 | and clone(CopyOp&) where CopyOp is a functor which allows users to |
|---|
| 765 | specify the deep copy vs shallow copying of object data. |
|---|
| 766 | |
|---|
| 767 | |
|---|
| 768 | 2nd January 2002 - osg-0.8.43.tar.gz |
|---|
| 769 | |
|---|
| 770 | >>> Support for TrueType text, Stereo out of the box, and much more. |
|---|
| 771 | |
|---|
| 772 | Since the last release the OSG has moved to CVS based developments so |
|---|
| 773 | many users will have seen gradual increments in functionality and changes |
|---|
| 774 | to the API. Whereas a the leap from 0.8.42 to 0.8.43 is actually quite |
|---|
| 775 | significant is likely to require code changes as several significant parts |
|---|
| 776 | of the API have evolved to a more mature state. |
|---|
| 777 | |
|---|
| 778 | The most significant new functionality is the addition of the osgText |
|---|
| 779 | library which provides support for true type font rendering, as textured, |
|---|
| 780 | polygonal, pixmap, bitmap and 3D fonts. |
|---|
| 781 | |
|---|
| 782 | We now have new osg::Matrix implementation which cleans up its interface. |
|---|
| 783 | Also all angular parameters are now based on radians rather than degrees |
|---|
| 784 | as before (and as in Performer), this has been done to be more consistent |
|---|
| 785 | with the basic trignometric functions and standard maths conventions. |
|---|
| 786 | |
|---|
| 787 | Scene graph optimization has been added which can boost performance |
|---|
| 788 | on some database by as much as an order of magnititude, this is |
|---|
| 789 | particularily noticable in .flt based databases. Display list performance |
|---|
| 790 | has also been boosted on NVidia based machines thanks to changing the |
|---|
| 791 | compilation and execution of display list into two seperate operations. |
|---|
| 792 | |
|---|
| 793 | App callbacks are now supported on all Nodes, and there now a proper |
|---|
| 794 | app traversal which can be used to animate the scene. |
|---|
| 795 | |
|---|
| 796 | Stereo support has been added into the osgUtil::SceneView which allows |
|---|
| 797 | quad buffered/anaglyphic stereo to enabled easily for almost all OSG |
|---|
| 798 | applications without code modifications - simple set environmental |
|---|
| 799 | variable or pass in appropriate arguments and your app will render in |
|---|
| 800 | stereo! |
|---|
| 801 | |
|---|
| 802 | src/Demos/osgcluster has been added to demonstrate how easy it is |
|---|
| 803 | to set up a graphics cluster across a standard networked PC's. |
|---|
| 804 | |
|---|
| 805 | There have been many minor code changes to fix bugs and address |
|---|
| 806 | performance bottlenecks or to improve extensibility was, representing |
|---|
| 807 | a significant step towards API maturity and a beta release which is |
|---|
| 808 | now not far away. |
|---|
| 809 | |
|---|
| 810 | |
|---|
| 811 | 9th August 2001 - osg-0.8.42.tar.gz |
|---|
| 812 | |
|---|
| 813 | >>> New osgWX library for integration of OSG with wxWindows apps. |
|---|
| 814 | |
|---|
| 815 | This release sees a relatively minor number of enhancements over |
|---|
| 816 | 0.8.41, the most significant being the new osgWX library and wxsgv |
|---|
| 817 | demo written by Ben Discoe. |
|---|
| 818 | |
|---|
| 819 | Also from Brede Johansen in this release is the improvements in support for older |
|---|
| 820 | .flt (Open Flight) files such versions 12 & 13. Previously only version |
|---|
| 821 | 15.6 files had been tested and developed to. |
|---|
| 822 | |
|---|
| 823 | Last but by no means least, several bug fixes related to view frustum |
|---|
| 824 | culling have been made. |
|---|
| 825 | |
|---|
| 826 | |
|---|
| 827 | 25th July 2001 - osg-0.8.41.tar.gz |
|---|
| 828 | |
|---|
| 829 | >>> Support added for multi-pass and multi-stage rendering including Impostors. |
|---|
| 830 | |
|---|
| 831 | The key feature developed is a highly flexible framework for multi-pass and |
|---|
| 832 | multi-stage rendering techniques. Unlike most scene graphs and games |
|---|
| 833 | engines the OSG has as dynamic framework which automatically configures |
|---|
| 834 | itself at runtime. |
|---|
| 835 | |
|---|
| 836 | Building ontop of the new framework's multi-stage rendering capabilities, |
|---|
| 837 | support for Impostors (hirachical image caching) has been integrated into |
|---|
| 838 | the core scene graph library making extremely easy to take advantage of |
|---|
| 839 | this advanced rendering techinque - normally only seen in research papers. |
|---|
| 840 | Check out osgimpostor demo to see how easy it is to add osg::Impostor |
|---|
| 841 | nodes to your own models. Impostors are particularily effective are |
|---|
| 842 | reducing scene complexity whilest minimizing the visual impact, making it |
|---|
| 843 | ideal for scenes with large numbers of complex objects such as a city |
|---|
| 844 | scene, or a dense forest. |
|---|
| 845 | |
|---|
| 846 | Taking advantage of the new framework's multi-pass rendering capabilities |
|---|
| 847 | is osgreflect demo which illustrates how to achieve planar relfections |
|---|
| 848 | using the stencil buffer and multi-pass rendering. |
|---|
| 849 | |
|---|
| 850 | The cool thing about both the osgreflect and osgimpostor demos is that |
|---|
| 851 | there is no hardwiring to achieve the results, the scene graph stores |
|---|
| 852 | all the information neccessary to specify the number and type of rendering |
|---|
| 853 | passes, and the framework handles the rest behind the scenes. This also |
|---|
| 854 | makes it very easy to add these advanced rendering techinques to your |
|---|
| 855 | own applications as everything is cleanly encapsulated with |
|---|
| 856 | osgUtil::SceneView. |
|---|
| 857 | |
|---|
| 858 | New loaders have been added to support .lwo (Light Wave), .obj |
|---|
| 859 | (Alias Wavefront) and .dw (Design Workshop) 3D file formats making it |
|---|
| 860 | even easier to compose your own worlds from models sourced from the |
|---|
| 861 | web or your own. |
|---|
| 862 | |
|---|
| 863 | osg::Camera has been totally revamped and now supports asymetric |
|---|
| 864 | and othographics projections in addition to the symetrical perspective |
|---|
| 865 | projections. |
|---|
| 866 | |
|---|
| 867 | And finally, support for texture subloading has been added to osg::Texture |
|---|
| 868 | and osg::Image. This allows textures to be updated dynamically, and |
|---|
| 869 | has already been used for mpeg video playback! |
|---|
| 870 | |
|---|
| 871 | |
|---|
| 872 | 19th May 2001 - osg-0.8.40.tar.gz |
|---|
| 873 | |
|---|
| 874 | >>> Project lead, Robert Osfield, makes full-time commitment to OSG. |
|---|
| 875 | |
|---|
| 876 | This is the first full release since project lead, Robert Osfield, made |
|---|
| 877 | a move to pursue the OSG's development full-time. This commitment has |
|---|
| 878 | been made to bring the API rapidly towards maturity, and to provide |
|---|
| 879 | high quality support and consultancy services. Please contact |
|---|
| 880 | robert@openscenegraph.com if you have any queries. |
|---|
| 881 | |
|---|
| 882 | This release marks a significant step forward in the maturity of the |
|---|
| 883 | API, with several major changes to the library in the areas of state |
|---|
| 884 | handling, database support, and portability. |
|---|
| 885 | |
|---|
| 886 | To improve the extensibility of the OSG's handling of OpenGL state, |
|---|
| 887 | new classes have been introduced to replace the previous hardwired |
|---|
| 888 | state handling classes. The new classes also allow improved state |
|---|
| 889 | sorting and lazy state updating which boosts both cull traversal |
|---|
| 890 | and particularly draw traversal performance. |
|---|
| 891 | |
|---|
| 892 | To improve the modularity, interopability and conceptual clarity the |
|---|
| 893 | support classes for database loading have been moved from the core |
|---|
| 894 | osg library into their own osgDB library. Support for the .osg |
|---|
| 895 | ASCII native database format and the .rgb reader has moved into its own |
|---|
| 896 | osgPlugins library to further the cleanliness of the core library. |
|---|
| 897 | |
|---|
| 898 | Support has be added for multiple OpenGL context's and hence multi-pipe |
|---|
| 899 | systems such as sgi's Onyx2, allowing each context to have its own |
|---|
| 900 | display list and texture objects. |
|---|
| 901 | |
|---|
| 902 | The culler and rendering support in osgUtil has also been improved, and |
|---|
| 903 | significantly speeded up for complex models. |
|---|
| 904 | |
|---|
| 905 | Also just in, thanks to Randall Hopper for adding support for FreeBSD :-) |
|---|
| 906 | |
|---|
| 907 | |
|---|
| 908 | 23rd March 2001 - osg-0.8.39.tar.gz |
|---|
| 909 | |
|---|
| 910 | >>> Port of OSG to MacOS underway |
|---|
| 911 | |
|---|
| 912 | The first steps towards support of MacOS have been taken by Bryan Woods, |
|---|
| 913 | adding Metrowerks project files and adding support for MacOS into the |
|---|
| 914 | core scene graph. Work still in progress so assistance welcome to |
|---|
| 915 | complete the task. |
|---|
| 916 | |
|---|
| 917 | Other major developments have been the addition of two new base classes |
|---|
| 918 | osg::StateAttribute and osg::Drawable which are designed to allow greater |
|---|
| 919 | extensibility of OpenGL state management and primitives. |
|---|
| 920 | |
|---|
| 921 | |
|---|
| 922 | 17th Feburary 2001 - osg-0.8.38.tar.gz |
|---|
| 923 | |
|---|
| 924 | >>> New 3DS loader added |
|---|
| 925 | |
|---|
| 926 | The OpenSceneGraph now supports the 3DS file format. This makes |
|---|
| 927 | available a huge range of potential models. Check out |
|---|
| 928 | http://www.3dcafe.com or http://www.3drocketfuel.com for some juice. |
|---|
| 929 | |
|---|
| 930 | 10th Feburary 2001 - osg_src-0.8-37.tar.gz |
|---|
| 931 | |
|---|
| 932 | >>> Texture compression now supported |
|---|
| 933 | |
|---|
| 934 | The OpenSceneGraph now provides support for ARB and S3TC texture |
|---|
| 935 | compression. This allows more textures to be loaded onto graphics |
|---|
| 936 | card memory, resulting in happier users and a better world in which |
|---|
| 937 | to live. |
|---|
| 938 | |
|---|
| 939 | This release also sees the addition of a simple hang gliding flight sim |
|---|
| 940 | demo. |
|---|
| 941 | |
|---|
| 942 | 25th January 2001 - osg_src-0.8-35.tar.gz |
|---|
| 943 | |
|---|
| 944 | >>> Anisotropic texturing now supported <i>and</i> loading of gzip compressed files |
|---|
| 945 | |
|---|
| 946 | Anisotropic texturing provides for the next step in quality texturing |
|---|
| 947 | filtering above tri-linear and is especially effective when viewing |
|---|
| 948 | texture surfaces at shallow angles. |
|---|
| 949 | |
|---|
| 950 | Also added in this release is on-the-fly support for loading gzipped |
|---|
| 951 | (.osgtgz, .tgz) and zipped (.zip) database files. This features allows |
|---|
| 952 | users to store whole databases (models and textures) in a single |
|---|
| 953 | tar ball and unpack them automatically on running the osg. This |
|---|
| 954 | is ideal for browsing the web. |
|---|
| 955 | |
|---|
| 956 | 22nd December 2000 - osg_src-0.8-33.tar.gz |
|---|
| 957 | |
|---|
| 958 | >>> Support added for OpenGL vertex arrays, and several key image loaders. |
|---|
| 959 | |
|---|
| 960 | Support for OpenGL vertex arrays has been added to improve performance, |
|---|
| 961 | particularly accelerating PC based graphics. |
|---|
| 962 | |
|---|
| 963 | Also added is support gif, jpeg, pic, tga, tiff image formats via |
|---|
| 964 | dynamic plugins. |
|---|
| 965 | |
|---|
| 966 | 8th Decemeber 2000 - osg_src-0.8-32.tar.gz |
|---|
| 967 | |
|---|
| 968 | >>> New high resolution, low latency timer class - osg::Timer. |
|---|
| 969 | |
|---|
| 970 | Real-time graphics relies upon accurate timers for updating physics |
|---|
| 971 | simulations and managing constant framerates. The OSG now provides |
|---|
| 972 | osg::Timer which, when supported, takes advantage of hardware timers. |
|---|
| 973 | |
|---|
| 974 | |
|---|
| 975 | 18th November 2000 - osg_src-0.8-29.tar.gz |
|---|
| 976 | |
|---|
| 977 | >>> Support for detail drawing with osg::PolygonOffset. |
|---|
| 978 | |
|---|
| 979 | Rendering of polygons which overlay underlying geometry, such |
|---|
| 980 | as white lines on a runway, can now be achieved utilizing the |
|---|
| 981 | new osg::PolygonOffset which encapsulates glPolygonOffset to |
|---|
| 982 | avoid z fighting which otherwise hampers such detailing. |
|---|
| 983 | |
|---|
| 984 | 10th November 2000 - osg_src-0.8-28.tar.gz |
|---|
| 985 | |
|---|
| 986 | >>> New Open Flight .flt loader! |
|---|
| 987 | |
|---|
| 988 | Thanks to Brede Johansen submission of .flt loader, the OSG can now |
|---|
| 989 | read Open Flight .flt databases. |
|---|
| 990 | |
|---|
| 991 | 3rd November 2000 - osg_src-0.8-26.tar.gz |
|---|
| 992 | |
|---|
| 993 | >>> Driving and Flight modes have been added to viewers. |
|---|
| 994 | |
|---|
| 995 | osgUtil::DriveManipulator and osgUtil::FlightManipulator have been |
|---|
| 996 | added to allow the scene graph viewer (sgv) and other viewers to |
|---|
| 997 | support a drive and flying modes. These modes can be accessed |
|---|
| 998 | in sgv by pressing '2' and '3' respectively ('1' returns to |
|---|
| 999 | trackball manipulator). Left mouse button accelerates forward, |
|---|
| 1000 | middle stops motion and right deccelerates. |
|---|
| 1001 | |
|---|