Changeset 1868

Show
Ignore:
Timestamp:
04/13/03 15:26:41 (11 years ago)
Author:
robert
Message:

Added Geoff Michel's osgpick and osgUtil::PickVisitor? code.

Location:
OpenSceneGraph/trunk
Files:
8 added
9 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/trunk/Make/makedefs

    r1861 r1868  
    329329ifeq ($(OS),Darwin) 
    330330  C++               = c++ 
    331   INC               +=  
     331  INC               += -I/usr/X11R6/include 
     332  LDFLAGS           += -L/usr/X11R6/lib 
    332333  DEF               += -Wall -D__DARWIN_OSX__ 
    333334  OPTF              = -O2 
     
    344345  CARBON_LIB        = -framework Carbon 
    345346  GL_LIBS           = -framework OpenGL $(CARBON_LIB) 
    346   X_LIBS            =  
     347  X_LIBS            = -lX11  
    347348  SOCKET_LIBS       =  
    348349  OTHER_LIBS        = -lm -lstdc++ -lobjc 
  • OpenSceneGraph/trunk/Make/makedirdefs

    r1858 r1868  
    120120        osgoccluder\ 
    121121        osgparticle\ 
     122        osgpick\ 
    122123        osgprerender\ 
    123124        osgreflect\ 
  • OpenSceneGraph/trunk/VisualStudio/VisualStudio.dsw

    r1818 r1868  
    11441144############################################################################### 
    11451145 
     1146Project: "Example osgpick"=.\examples\osgpick\osgpick.dsp - Package Owner=<4> 
     1147 
     1148Package=<5> 
     1149{{{ 
     1150}}} 
     1151 
     1152Package=<4> 
     1153{{{ 
     1154    Begin Project Dependency 
     1155    Project_Dep_Name Core osg 
     1156    End Project Dependency 
     1157    Begin Project Dependency 
     1158    Project_Dep_Name Core osgDB 
     1159    End Project Dependency 
     1160    Begin Project Dependency 
     1161    Project_Dep_Name Core osgGA 
     1162    End Project Dependency 
     1163    Begin Project Dependency 
     1164    Project_Dep_Name Core osgProducer 
     1165    End Project Dependency 
     1166    Begin Project Dependency 
     1167    Project_Dep_Name Core osgUtil 
     1168    End Project Dependency 
     1169}}} 
     1170 
     1171############################################################################### 
     1172 
    11461173Project: "Example osgwindows"=.\examples\osgwindows\osgwindows.dsp - Package Owner=<4> 
    11471174 
  • OpenSceneGraph/trunk/doc/data.html

    r1862 r1868  
    3131 
    3232<li>Open scene graph .osg demo data set can downloaded here:</li> 
    33 <i><a href="http://www.openscenegraph.org/download/data/OpenSceneGraph-Data-0.9.1.tar.gz">http://www.openscenegraph.org/download/data/OpenSceneGraph-Data-0.9.1.tar.gz</a></i> 
     33<i><a href="http://www.openscenegraph.org/download/data/OpenSceneGraph-Data-0.9.4.tar.gz">http://www.openscenegraph.org/download/data/OpenSceneGraph-Data-0.9.4.tar.gz</a></i> 
    3434 
    3535<br> 
     
    4141<br> 
    4242<li>Terrain models in OpenFlight .flt format at Grime:</li> 
    43 <a href="http://www.grime.net">http://www.grime.net</a> 
     43<a href="http://www.grime.net/Downloads/simulations.htm">http://www.grime.net</a> 
    4444 
    4545<br> 
     
    5959 
    6060 
    61 <br> 
    62 <br> 
    63 <li>Vehicle models in OpenFlight .flt format at Full Sail (spinnercar & veritech):</li> 
    64 <a href="http://www.fullsail.com/loader/models.html">http://www.fullsail.com/loader/models.html</a> 
    65  
    6661</ul> 
    6762 
  • OpenSceneGraph/trunk/doc/install.html

    r1862 r1868  
    3737<u>Compiling and installing the OpenSceneGraph</u></h2> 
    3838The scene graph depends upon Standard C++, STL and OpenGL so you need a 
    39 C++ compiler up to the task and OpenGL or Mesa installed. The viewer depends 
    40 upon Producer which you'll need to download and install from the Producer website. 
    41 The OSG has it own native ascii file format, and .rgb image reader inbuilt 
     39C++ compiler up to the task and OpenGL or Mesa installed. The example applications depend 
     40upon Open Producer which you'll need to download and install from the Producer website. 
     41The OSG has it own native ascii file format, and .rgb image reader 
    4242which allows you read the example data with any dependencies other than 
    4343C++, STL and OpenGL. 
    44 <p>The osgText library adds the dependency of the freetype library for 
    45 support of true type fonts, however it is not essential to the core library, 
    46 so you can comment it out from compilation by modifying the src/Makefile, 
    47 and examples/Makefile. I you wish to use fonts then you can download freetype 
    48 from www.freetype.org. The osgText library also requires an up to date 
    49 GLU implementation which supports GLU1.2 tessellation routines. If you 
    50 your current GLU is out of date you'll need to download the latest, for 
    51 instance the sgi's sample implementation for GLU from the www.opengl.org 
    52 website. 
    5344<p>The OSG also has a set of plug-ins which support non-native 3d database 
    5445and image formats, several have no dependencies on external libraries (flt,3ds,obj, 
  • OpenSceneGraph/trunk/doc/introduction.html

    r1862 r1868  
    7272<u>Why use a Scene Graph - Performance, Productivity, Portability and Scalability</u>.</h3> 
    7373 
    74 <ol><i>Performance</i> - scene graphs provide an excellent framework for 
     74<ol><b><i>Performance</i></b> - scene graphs provide an excellent framework for 
    7575maximizing graphics performance. A good scene graph employs two key techniques 
    7676- culling of the objects that won't be seen on screen, and state sorting 
     
    8484througput. As GPU's get faster and faster, the cost of stalling the graphics 
    8585is also going up, so scene graphs are becoming ever more important. 
    86 <p><i>Productivity</i> - scene graphs take away much of the hard work required 
     86<p><b><i>Productivity</i></b> - scene graphs take away much of the hard work required 
    8787to develop high performance graphics applications. The scene graph manages 
    8888all the graphics for you, reducing what would be thousands of lines of 
     
    9797very little coding. A dozen lines of code can be enough to load your data 
    9898and create an interactive viewer! 
    99 <p><i>Portability</i> - scene graphs encapsulate much of the lower level 
     99<p><b><i>Portability</i></b> - scene graphs encapsulate much of the lower level 
    100100tasks of rendering graphics and reading and writing data, reducing or even 
    101101eradicating the platform specific coding that you require in your own application. 
    102102If the underlying scene graph is portable then moving from platform to 
    103103platform can be as simple as recompiling your source code. 
    104 <p><i>Scalability</i> - along with being able to dynamic manage the complexity 
     104<p><b><i>Scalability</i></b> - along with being able to dynamic manage the complexity 
    105105of scenes automatically to account for differences in graphics performance 
    106106across a range of machines, scene graphs also make it much easier to manage 
     
    124124the four key benefits of scene graph technology outlined above using the 
    125125following features: 
    126 <ol><i>Performance</i> - supports view frustum culling, occlusion culling, small feature culling, 
     126<ol><b><i>Performance</i></b> - supports view frustum culling, occlusion culling, small feature culling, 
    127127Level Of Detail (LOD) nodes, state sorting, vertex arrays and display 
    128128lists as part of the core scene graph. These together make the OpenSceneGraph 
     
    135135be found at Vterrain.org and TerrainEngine.com, both of which integrate 
    136136with the OpenSceneGraph. 
    137 <p><i>Productivity</i> - by combining lessons learned from established 
     137<p><b><i>Productivity</i></b> - by combining lessons learned from established 
    138138scene graphs like Performer and Open Inventor, with modern software engineering 
    139139boosts like Design Patterns, along with a great deal of feedback early on 
     
    144144graph and viewers and a wide range of loaders it is possible to create 
    145145an application and bring in user data with a very small amount of code. 
    146 <p><i>Portability</i> - The core scene graph has also been designed to 
     146<p><b><i>Portability</i></b> - The core scene graph has also been designed to 
    147147have minimal dependency on any specific platform, requiring little more than 
    148148Standard C++ and OpenGL. This has allowed the scene graph to be rapidly 
     
    155155written on top of Qt, MFC, WxWindows and SDL. Users have also integrated it 
    156156with Motif, and X. 
    157 <p><i>Scalability</i> - the scene graph will not only run on portables all 
     157<p><b><i>Scalability</i></b> - the scene graph will not only run on portables all 
    158158the way up to Onyx Infinite Reality Monsters, it supports the multiple 
    159159graphics subsystems found on machines like a mulitpipe Onyx. This is 
     
    163163scene graph almost entirely as a read-only operation. This allows multiple 
    164164cull-draw pairs to run on multiple CPU's which are bound to multiple graphics 
    165 subsystems. This has been demonstrated using the OpenSceneGraph in conjunction 
    166 with SGI's OpenGL multipipe SDK. We also have osgMP in development, which 
    167 will be cross platform and will transparently support multiple multipipe systems 
    168 like the Onyx and graphics clusters</ol> 
     165subsystems. Support for multiple graphic context and multi-threading is all 
     166available out of the box via osgProducer - all the examples in the distribution 
     167can run multi-pipe just by use a simple configuation file.</ol> 
     168 
    169169All the source to the OSG is published under the GNU Lesser General Public License 
    170170(LGPL) which allows both open source and closed source projects to use, 
     
    181181to appreciate. 
    182182<p>The project is currently in beta, which means the main core features are now in 
    183 place, with a 1.0 release in fall 2002. Despite the beta development status, 
     183place, with a 1.0 release in second half of 2003. Despite the beta development status, 
    184184the project has already earned the reputation the leading open source scene 
    185185graph, and is establishing itself as a viable alternative to the commercial 
     
    212212OpenSceneGraph depend upon, such as Producer. Check the <a href="dependencies.html">dependencies</a> 
    213213list for further details. 
    214 <p>For full instructions of how to run the demos read the <a href="examples.html">demos</a> 
     214<p>For full instructions of how to run the examples read the <a href="examples.html">examples</a> 
    215215page. 
    216216<br> 
     
    219219<u>Learning how to use the OpenSceneGraph</u></h3> 
    220220The OpenSceneGraph distribution comes with a reference guide for each of 
    221 the component libraries - osg, osgDB, osgUtil, osgText, osgParticle and osgProducer, a set 
    222 of demos - the source of which can be found in examples. For questions 
     221the component libraries - osg, osgDB, osgUtil, osgText, osgSim, osgParticle and osgProducer, a set 
     222of examples - the source of which can be found in examples. For questions 
    223223or help which can't be easily be answered by the reference guide and demo 
    224224source, one should join the mailing list (details below). There are also 
  • OpenSceneGraph/trunk/doc/plan.html

    r1862 r1868  
    3838Now we have reached the beta phase (0.9.x) of OpenScenegGraph project, 
    3939and are now working towards the full 1.0 release, with a likely  
    40 release date in fall 2002. 
     40release date in second half of 2003. 
    4141 
    4242<h3> 
     
    4646 
    4747<li> 
    48 Multi-pass fallback for when multi-texturing is not supported.</li> 
     48StateSet composite structure for managing multi-pass effects and alternate rendering implemations.   
     49This will allow one to manage the use of extensions and provide effecient fallback rendering paths.</li> 
    4950 
    5051<li> 
     
    5354 
    5455<li> 
    55 Open Producer - cross platform library for transparently managing mulitpipe and 
    56 cluster graphics systems. Similar in concept to OpenGL multipipe SDK, except 
    57 cross platform and with support of graphics clusters.</li> 
     56Support for clustering in Open Producer and osgProducer.</li> 
    5857 
    5958<li> 
    60 osgSim - cross platform library for the visual simulation market with support for light points, 
    61 small target anti-aliasing, geometry correction and clip mapping.</li> 
     59Enhance osgDB and plugins to allow them to be used with alternate input streams.  Add support for native binary  
     60file format for rapid loading and saving of scene graphs. 
     61</li> 
    6262 
    6363<li> 
    64 Replace osgProducer with Open Producer for the demos.  Open Producer is a much cleaner and more scalable 
    65 windowing API. Move osgProducer out of the distribution and into the bazaar.</li> 
     64Development of virtual texture support for rendering in real-time massive images, such as whole earth textures.</li> 
    6665 
    6766<li> 
    68 Introduce a new library osgEnv/osgShapes, which adds support for creating 
    69 shapes and environmental effects such as stars, planets, cloud layers and 
     67Introduce a new library osgEnvironment, which adds support for creating 
     68shapes and environmental effects such as stars, planets, cloud layers, oceans and 
    7069ground planes.</li> 
    7170 
  • OpenSceneGraph/trunk/examples/osgcameragroup/osgcameragroup.cpp

    r1855 r1868  
    148148 
    149149    Producer::Trackball tb; 
    150     tb.setOrientation( Producer::Trackball::Y_UP ); 
     150    tb.setOrientation( Producer::Trackball::Z_UP ); 
    151151 
    152152    // create the windows and run the threads. 
     
    157157    while( !kbmcb.done() ) 
    158158    { 
    159         // syncronize to screen refresh. 
     159        // syncronize to the when cull and draw threads have completed. 
    160160        cg.sync(); 
    161161 
     
    172172        cg.frame(); 
    173173    } 
     174 
     175    // syncronize to the when cull and draw threads have completed. 
     176    cg.sync(); 
     177 
    174178    return 0; 
    175179} 
  • OpenSceneGraph/trunk/src/osgUtil/GNUmakefile

    r1681 r1868  
    1010        InsertImpostorsVisitor.cpp\ 
    1111        IntersectVisitor.cpp\ 
     12        PickVisitor.cpp\ 
    1213        Optimizer.cpp\ 
    1314        RenderBin.cpp\