Changeset 1915 for OpenSceneGraph/trunk/doc/introduction.html
- Timestamp:
- 04/24/03 21:54:03 (10 years ago)
- Files:
-
- 1 modified
-
OpenSceneGraph/trunk/doc/introduction.html (modified) (14 diffs)
Legend:
- Unmodified
- Added
- Removed
-
OpenSceneGraph/trunk/doc/introduction.html
r1912 r1915 36 36 <h2> 37 37 <u>Introduction to the OpenSceneGraph</u></h2> 38 Welcome to OpenSceneGraph project! 39 <p>The OpenSceneGraph is an Open Source <a href="../LICENSE.txt">(OSGPL)</a>, Cross Platform (Windows, 40 Linux, Mac OSX, FreeBSD, Irix, Solaris and HP-UX), Standard C++ and OpenGL based 41 graphics development library. Uses range from visual simulation, games, 42 virtual reality, scientific visualization and graphics research. This page 43 introduces what scene graphs are, why graphics developers use them, and 44 details about the OpenSceneGraph project, how to learn how to use it and 45 contribute to the OpenSceneGraph community. 46 <p><i>Robert Osfield, Project Lead. July 2002.</i> 47 <br> 48 <hr> 38 39 <p>The OpenSceneGraph is an portable, high level graphics toolkit for the development of high peformance 40 graphics applications such as flight simulators, games, virtual reality or scientific visualization. 41 Providing an object orientated framework on top of OpenGL, it frees the developer 42 from implementing and optimizing low level graphics calls, and provide many additional utilities for 43 rapid development of graphics applications. 44 </p> 45 <p> 46 The project was started as a hobby by Don Burns in early 1999, as means of porting a hang gliding simulator written on top of the 47 Peformer scene graph running on IRIX to what was then a humble Linux PC. In mid 1999, Robert Osfield began helping out with 48 the simulator development and ported the scene graph element to Windows. In september 1999 the source code was open sourced, 49 and the openscenegraph.org website was born, with Robert taking over as project lead and Don remaining focused on the hang 50 gliding simulator. In April 2001, in response to growing interest in the project around the world, Robert went fulltime 51 on the project, setting up OpenSceneGraph Professional Services, 52 with the mission: 53 <ul> 54 <li><b>Source</b> 55 <br>To develop a high performance, high quality visualization toolkit which 56 is freely available and accessible to all.</li> 57 58 <li><b>Community</b> 59 <br>To nurture a world-wide community of graphics professionals and enthusiasts 60 for development, support and promotion of best practices in software engineering 61 and real-time computer graphics.</li> 62 63 <li><b>Service</b> 64 <br>To provide consultancy and development services for clients projects to 65 allow them to maximize the benefits of real-time 3D graphics and to facilitate 66 the rapid, yet seamless adoption of latest graphics technologies.</li> 67 </ul> 68 </p> 69 70 <br> 49 71 <h3> 50 72 <u>What is a Scene Graph?</u></h3> … … 58 80 The leaves of the graph represent the physical objects themselves, the 59 81 drawable geometry and their material properties. 82 </p> 60 83 <p>A scene graph isn't a complete game or simulation engine, although it may 61 84 be one of the main components of such an engine; it's primary focus is … … 67 90 markets from games, visual simulation, virtual reality, 68 91 scientific and commercial visualization, training through to modeling programs. 69 <br> 70 <hr> 71 <h3> 72 <u>Why use a Scene Graph - Performance, Productivity, Portability and Scalability</u>.</h3> 73 74 <ol><b><i>Performance</i></b> - scene graphs provide an excellent framework for 92 </p> 93 94 95 <br> 96 <h3> 97 <u>Advantages that Scene Graphs provide</h3> 98 99 The key reasons that many graphics developers uses scene graphs are <i>Performance, Productivity, Portability and Scalability:</i> 100 101 <ul> 102 <li><b><i>Performance</i></b></li> 103 Scene graphs provide an excellent framework for 75 104 maximizing graphics performance. A good scene graph employs two key techniques 76 105 - culling of the objects that won't be seen on screen, and state sorting … … 79 108 swamped by many times the amount of data than they actually require to 80 109 represent your work accurately. The hierarchical structure of the scene 81 graph makes this culling process very efficient with whole town beingculled110 graph makes this culling process very efficient, for instance a whole city can be culled 82 111 with just a few operations! Without state sorting, the the buses and GPU 83 112 will thrash between states, stalling the graphics pipeline and destroying graphics 84 113 througput. As GPU's get faster and faster, the cost of stalling the graphics 85 114 is also going up, so scene graphs are becoming ever more important. 86 <p><b><i>Productivity</i></b> - scene graphs take away much of the hard work required 115 116 <li><b><i>Productivity</i></b></li> 117 Scene graphs take away much of the hard work required 87 118 to develop high performance graphics applications. The scene graph manages 88 119 all the graphics for you, reducing what would be thousands of lines of … … 97 128 very little coding. A dozen lines of code can be enough to load your data 98 129 and create an interactive viewer! 99 <p><b><i>Portability</i></b> - scene graphs encapsulate much of the lower level 130 131 <li><b><i>Portability</i></b></li> 132 Scene graphs encapsulate much of the lower level 100 133 tasks of rendering graphics and reading and writing data, reducing or even 101 134 eradicating the platform specific coding that you require in your own application. 102 135 If the underlying scene graph is portable then moving from platform to 103 136 platform can be as simple as recompiling your source code. 104 <p><b><i>Scalability</i></b> - along with being able to dynamic manage the complexity 137 138 <li><b><i>Scalability</i></b></li> 139 Along with being able to dynamic manage the complexity 105 140 of scenes automatically to account for differences in graphics performance 106 141 across a range of machines, scene graphs also make it much easier to manage … … 109 144 will allow the developer to concentrate on developing their own application 110 145 while the rendering framework of the scene graph handles the different 111 underlying hardware configurations.</ol> 112 113 <hr> 114 <h3> 115 <u>So what about the OpenSceneGraph project?</u></h3> 116 The OpenSceneGraph is an Open Source Scene Graph, and our goal is make 117 the benefits of scene graph technology available to all. Our scene graph 118 is still in development, but has already gained a great deal of respect 146 underlying hardware configurations. 147 </ul> 148 149 150 <br> 151 <h3> 152 <u>The OpenSceneGraph - <i> a robust, high peformance Open Source scene graph</i></u></h3> 153 With the OpenSceneGraph our goal is make the benefits of scene graph technology 154 freely available to all, for both commericial and non commericial users. Whilst our scene graph 155 is still in development, it has already gained a respect 119 156 amongst the development community for its high performance, cleanness of 120 157 design and portability. Written entirely in Standard C++ and OpenGL, it … … 124 161 the four key benefits of scene graph technology outlined above using the 125 162 following features: 126 <ol><b><i>Performance</i></b> - supports view frustum culling, occlusion culling, small feature culling, 163 <ul> 164 <li><b><i>Performance</i></b></li> 165 Supports view frustum culling, occlusion culling, small feature culling, 127 166 Level Of Detail (LOD) nodes, state sorting, vertex arrays and display 128 167 lists as part of the core scene graph. These together make the OpenSceneGraph … … 135 174 be found at Vterrain.org and TerrainEngine.com, both of which integrate 136 175 with the OpenSceneGraph. 137 <p><b><i>Productivity</i></b> - by combining lessons learned from established 138 scene graphs like Performer and Open Inventor, with modern software engineering 139 boosts like Design Patterns, along with a great deal of feedback early on 176 177 <li><b><i>Productivity</i></b> </li> 178 Combining lessons learned from established scene graphs like Performer 179 and Open Inventor, with modern software engineering 180 methods like Design Patterns, along with a great deal of feedback early on 140 181 in the development cycle, it has been possible to design a library that is 141 182 clean and highly interpretable. This has made it easy for users to adopt 142 183 to the OpenSceneGraph and to integrate it with their own applications. With 143 a full feature set in the core scene graph, utilities to set up the scene 144 graph and viewers and a wide range of loaders it is possible to create 145 an application and bring in user data with a very small amount of code. 146 <p><b><i>Portability</i></b> - The core scene graph has also been designed to 184 a full feature set in the core scene graph, utilities (osgUtil) to set up the scene 185 graph and viewers (osgProducer). 186 </p> 187 <p> 188 For reading and writing databases an addition database library (osgDB) adds support for a wide 189 variety of database formats via a extensible dynamic plugin mechansim - the distribution now includes 33 190 seperate plugins for loading various 3D and Image data formats. 3D Database loaders include OpenFlight (.flt), 191 TerraPage (.txp) including multi-threading support, LightWave (.lwo), Alias Wavefront (.obj), 192 Carbon Graphics GEO (.geo), 3D Studio MAX (.3ds), Peformer (.pfb), Quake Character Models (.md2). Direct X (.x), 193 and Inventor Ascii 2.0 (.iv)/ VRML 1.0 (.wrl), Designer Workshop (.dw) and AC3D (.ac) and the native .osg ASCII format. 194 Image loaders include .rgb, .gif, .jpg, .png, .tiff, .pic, .bmp, .dds (include compressed mip mapped imagery), .tga and qucktime (under OSX). A whole set of quality fonts 195 can also be loaded via the freetype plugin. 196 </p> 197 <p> 198 The scene graph also has a set of <i>Node Kits</i> which are seperate libraries 199 that be compiled directly or loaded in at runtime to add support for particle systems (osgParticle), 200 high quality anti-aliased text (osgText) and navigational light points (osgSim). 201 202 <li><b><i>Portability</i></b></li> 203 The core scene graph has also been designed to 147 204 have minimal dependency on any specific platform, requiring little more than 148 205 Standard C++ and OpenGL. This has allowed the scene graph to be rapidly 149 206 ported to a wide range of platforms - originally developed on IRIX, then 150 207 ported to Linux, then to Windows, then FreeBSD, Mac OSX, Solaris, HP-UX and 151 even a report of successful porting to PlayStation2!152 < p>208 we even a report of successful porting to PlayStation2! 209 <br> 153 210 The core scene graph library being completely windowing system independent makes 154 211 it easy for users to add their own window-specific libraries and applications on top. 155 212 In the distribution there is already the osgProducer library which integrates with <a href="http://www.andesengineering.com/Producer/">OpenProducer</a>, and in the Bazaar 156 213 found at openscenegrph.org/download/ one can find examples of applications 157 written on top of Qt, MFC, WxWindows and SDL. Users have also integrated it214 written on top of GLUT, Qt, MFC, WxWindows and SDL. Users have also integrated it 158 215 with Motif, and X. 159 <p><b><i>Scalability</i></b> - the scene graph will not only run on portables all 160 the way up to Onyx Infinite Reality Monsters, it supports the multiple 216 217 <li><b><i>Scalability</i></b></li> 218 The scene graph will not only run on portables all 219 the way up to Onyx Infinite Reality Monsters, but also supports the multiple 161 220 graphics subsystems found on machines like a mulitpipe Onyx. This is 162 221 possible because the core scene graph supports multiple graphics contexts … … 167 226 subsystems. Support for multiple graphic context and multi-threading is all 168 227 available out of the box via osgProducer - all the examples in the distribution 169 can run multi-pipe just by use a simple configuation file.</ol> 228 can run multi-pipe just by use a simple configuation file. 229 230 </ul> 170 231 171 232 All the source to the OSG is published under the Open Scene Graph Public License … … 189 250 have already adopted the OpenSceneGraph for their projects, all over the world. 190 251 <br> 191 <hr> 252 253 <br> 192 254 <h3> 193 255 <u>Getting started</u></h3> … … 199 261 via cvs. 200 262 <p>The binary distribution contains just the libraries (.dll's /.so's) 201 and demoexecutables. This is suitable for using the OpenSceneGraph with263 and example executables. This is suitable for using the OpenSceneGraph with 202 264 an application that has already been compiled but depends at runtime on 203 265 the OpenSceneGraph. 266 </p> 204 267 <p>The development distribution contains the libraries (.dll's /.so's), 205 demo executables, include files, and source to the demos. This is suitable268 example executables, include files, and source to the examples. This is suitable 206 269 for using the developers using the OpenSceneGraph. 270 </p> 207 271 <p>The source distribution contains all the source and include files 208 272 required to build the OpenSceneGraph from scratch, and is ideal if you 209 273 want to learn more about how the scene graph works, how to extend it, and 210 274 to track down and fix any problems that you come across. 275 </p> 211 276 <p>If you are using a source distribution then read the <a href="install.html">installation</a> 212 277 instructions for how to get the OpenSceneGraph compiling and installed … … 214 279 OpenSceneGraph depend upon, such as Producer. Check the <a href="dependencies.html">dependencies</a> 215 280 list for further details. 281 </p> 216 282 <p>For full instructions of how to run the examples read the <a href="examples.html">examples</a> 217 283 page. 218 <br> 219 <hr> 284 </p> 285 <br> 286 220 287 <h3> 221 288 <u>Learning how to use the OpenSceneGraph</u></h3> 222 The OpenSceneGraph distribution comes with a reference guide for each of289 <p>The OpenSceneGraph distribution comes with a reference guide for each of 223 290 the component libraries - osg, osgDB, osgUtil, osgText, osgSim, osgParticle and osgProducer, a set 224 of examples - the source of which can be found in examples. For questions225 or help which can't be easily be answered by the reference guide and demo291 of 42 examples - the source of which can be found in examples/ directory in the distribution. For questions 292 or help which can't be easily be answered by the reference guide and examples 226 293 source, one should join the mailing list (details below). There are also 227 294 the beginnings of a <a href="http://www.c2.com/cgi/wiki?OpenSceneGraphFaq">Wiki 228 295 based FAQ</a> which may help answer a few of the common queries. 296 </p> 229 297 <p>A programming guide will be available in form of a OpenSceneGraph book 230 298 which is being written by Don Burns and Robert Osfield, parts of it will 231 299 be available online. 300 </p> 232 301 <p>Although not directly related to the OpenSceneGraph, once can learn 233 302 about scene graph technology from such sources as the <a href="http://www.sgi.com/software/inventor/manuals.html">Open … … 237 306 as a background to some of the techniques used is a SIGGRAPH <a href="http://www.opengl.org/developers/code/sig99/advanced99/course_slides/vissim/index.htm">Vis-Sim 238 307 course</a>. 308 </p> 239 309 <p>The OpenSceneGraph uses OpenGL and does so with a deliberately thin layer, 240 310 making it easy to control the underlying OpenGL and to extend it with OpenGL … … 246 316 Book`</a> and OpenGL reference guide 'Blue Book'. The main <a href="http://www.opengl.org">OpenGL 247 317 website</a> is also a good source of links and further information. 248 <br> 249 <hr> 318 </p> 319 <br> 320 321 <br> 250 322 <h3> 251 323 <u>Support and discussion - the <i>openscenegraph-news</i> mailing list</u></h3> 252 324 For scene graph related questions, bug reports, bug fixes, and general 253 325 design and development discussion one should join the <a href="http://lists.sourceforge.net/mailman/listinfo/openscenegraph-news">openscenegraph-news</a> 254 mailing list, and check the the mailing list <a href="http:// www.geocrawler.com/redir-sf.php3?list=openscenegraph-news">archives</a>.326 mailing list, and check the the mailing list <a href="http://sourceforge.net/mailarchive/forum.php?forum_id=4775">archives</a>. 255 327 <p>Professional support is also available in the form of confidential online, 256 328 phone and onsite support and consultancy, for details contact Robert Osfield
