= Examples = [[TracNav(TracNav/SupportTOC)]] == Running the examples == The !OpenSceneGraph has an ever growing number of examples available for developers to learn from. Following is a guide to getting these examples running. Once the !OpenSceneGraph is installed you will need to place the location where it was installed on the system paths environmental variables. Also download the demo data and set the OSG_FILE_PATH environment variable so that the example datasets can be found by OSG. It is probably worth setting your autoexec.bat, .bashrc, .tcsh, etc to pick up on these settings so that next time you log in everything is in easy reach. Below are examples for the different platforms on how to set up your environment. The examples are not built by default, use the cmake utility and set the option to enable building of the example applications. To build them, run cmake with the following parameter: {{{-DBUILD_OSG_EXAMPLES=1}}} * Windows: {{{ set PATH=path;C:\OpenSceneGraph\bin set OSG_FILE_PATH=C:\OpenSceneGraph-Data;C:\OpenSceneGraph-Data\Images }}} * Unix - bashrc: {{{ export PATH = ${PATH}:/home/myaccount/OpenSceneGraph/bin export LD_LIBRARY_PATH = ${LD_LIBRARY_PATH}:/home/myaccount/OpenSceneGraph/lib export OSG_FILE_PATH = /home/myaccount/OpenSceneGraph-Data:/home/myaccount/OpenSceneGraph-Data/Images }}} * Unix - tcsh: {{{ setenv PATH ${PATH}:/home/myaccount/OpenSceneGraph/bin setenv LD_LIBRARY_PATH = ${LD_LIBRARY_PATH}:/home/myaccount/OpenSceneGraph/lib setenv OSG_FILE_PATH /home/myaccount/OpenSceneGraph-Data:/home/myaccount/OpenSceneGraph-Data/Images }}} * MacOSX: {{{ setenv PATH "${PATH}:${OSGHOME}/lib:${OSGHOME}/lib/osgPlugins" setenv DYLD_LIBRARY_PATH "${OSGHOME}/lib:${OSGHOME}/lib/osgPlugins" setenv DYLD_BIND_AT_LAUNCH setenv OSG_FILE_PATH "/home/myaccount/OpenSceneGraph-Data:/home/myaccount/OpenSceneGraph-Data/Images" }}} All the examples run from the command-line. Most require parameters to be passed, such as what file to load. If you are in any doubt just run the application and it will either run, or provide help on what options it accepts. You can also print out full help my running the example with the option --help. To run the examples in quick succession on Windows, use the runexamples.bat script which can be found in the the root of the OpenSceneGraph distribution: {{{ ./runexamples.bat }}} Press Escape to close each application and move on to the next application. On Unix, you should be able to use {{{ sh ./runexamples.bat }}} == Brief introduction to the examples == ||'''Example''' || '''Screenshot''' || '''Command Line''' || '''Description'''|| ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osg2cpp/osg2cpp.cpp osg2cpp.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osganalysis/osganalysis.cpp osganalysis.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osganimate/osganimate.cpp osganimate.cpp] ||[[Image(thumb_osganimate.jpg)]] || osganimate --overlay || Demonstrates the use of osg::!AnimationPath for setting up animations for transform nodes and the usage of osg::!OverlayNode. Three overlay modes can be specified as argument:[[BR]]--overlay or --object OBJECT_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY[[BR]]--ortho or --orthographic VIEW_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY[[BR]]--persp or --perspective VIEW_DEPENDENT_WITH_PERSPECTIVE_OVERLAY || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osganimationeasemotion/osganimationeasemotion.cpp osganimationeasemotion.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osganimationhardware/osganimationhardware.cpp osganimationhardware.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osganimationmakepath/osganimationmakepath.cpp osganimationmakepath.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osganimationmorph/osganimationmorph.cpp osganimationmorph.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osganimationnode/osganimationnode.cpp osganimationnode.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osganimationskinning/osganimationskinning.cpp osganimationskinning.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osganimationsolid/osganimationsolid.cpp osganimationsolid.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osganimationtimeline/osganimationtimeline.cpp osganimationtimeline.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osganimationviewer/osganimationviewer.cpp osganimationviewer.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgautotransform/osgautocapture.cpp osgautocapture.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgautotransform/osgautotransform.cpp osgautotransform.cpp] || [[Image(thumb_osgAutoTransform.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgbillboard/osgbillboard.cpp osgbillboard.cpp] || [[Image(thumb_osgbillboard.2.jpg)]] ||`osgbillboard` ||Demonstrates how to create the various types of billboard supported by the OpenSceneGraph. Billboards are typically used for trees or particles effects. || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgblendequation/osgblendequation.cpp osgblendequation.cpp] || [[Image(thumb_osgBlendEquation.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgbrowser/osgbrowser.cpp osgbrowser.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgcallback/osgcallback.cpp osgcallback.cpp] || [[Image(thumb_osgcallback.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgcamera/osgcamera.cpp osgcamera.cpp] || [[Image(thumb_osgcamera1.jpg)]][[BR]][[Image(thumb_osgcamera2.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgcatch/osgcatch.cpp osgcatch.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgcegui/osgcegui.cpp osgcegui.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgclip/osgclip.cpp osgclip.cpp] || [[Image(thumb_osgclip.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgcluster/osgcluster.cpp osgcluster.cpp] || || Master:[[BR]]osgcluster -m cow.osg[[BR]]Slave:[[BR]]osgcluster -s cow.osg|| Demonstates basic clustering of machines across a local area network using UDP packets to send camera position updates from a master viewer to slave viewers. || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgcompositeviewer/osgcompositeviewer.cpp osgcompositeviewer.cpp] || [[Image(thumb_osgCompositeViewer.jpg)]] || osgcompositeviewer cow.osg -3 || Demonstrates the use of the compositeviewer. [[BR]] -1 Single view with fountain.osg and a statshandler and trackballmanipulator[[BR]]-2 Two views each on a different screen sharing the same scene. First view trackballmanipulator and statesetmanipulator. Second view statshandler, trackballmanipulator and a pickhandler.[[BR]]-3 Three views within a single window. Window and graphics context manually created. First view (left bottom) with several event handlers. Second view (right bottom) with a trackballmanipulator and a pickhandler. Third view (upper half) with cessnafire.osg and a trackballmanipulator.[[BR]][[BR]]-s SingleThreaded[[BR]]-g CullDrawThreadPerContext[[BR]]-c !CullThreadPerCameraDrawThreadPerContext || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgcopy/osgcopy.cpp osgcopy.cpp] || [[Image(thumb_osgCopy.jpg)]] || osgcopy cow.osg || Demonstrates the use of deep vs shallow vs custom copying of scene graphs. A specialized !CopyOp class is used to output all copying that takes place when performing a deep or shallow copy. This example allows for quick experimentation (in source) with the different !CopyOp flags. || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgcubemap/osgcubemap.cpp osgcubemap.cpp] || [[Image(thumb_osgcubemap.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgdatabaserevisions/osgdatabaserevisions.cpp osgdatabaserevisions.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgdelaunay/osgdelaunay.cpp osgdelaunay.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgdepthpartition/osgdepthpartition.cpp osgdepthpartition.cpp] || [[Image(thumb_osgDepthPartition.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgdepthpeeling/osgdepthpeeling.cpp osgdepthpeeling.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgdistortion/osgdistortion.cpp osgdistortion.cpp] || [[Image(thumb_osgDistortion.jpg)]] || ||Shows how to use offscreen rendering (FBOs and PBOs) to distort the rendering of a scene arbitrarily. It is also demonstrated how to calculate a dome distortion correction.|| ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgdrawinstanced/osgdrawinstanced.cpp osgdrawinstanced.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgfadetext/osgfadetext.cpp osgfadetext.cpp] || [[Image(thumb_osgFadeText.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgfont/osgfont.cpp osgfont.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgforest/osgforest.cpp osgforest.cpp] || [[Image(thumb_osgForest.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgfpdepth/osgfpdepth.cpp osgfpdepth.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgfxbrowser/osgfxbrowser.cpp osgfxbrowser.cpp] || [[Image(thumb_osgFxBrowserCartoon.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osggameoflife/osggameoflife.cpp osggameoflife.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osggeodemo/osggeodemo.cpp osggeodemo.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osggeometry/osggeometry.cpp osggeometry.cpp] || [[Image(thumb_osgGeometry.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osggeometryshaders/osggeometryshaders.cpp osggeometryshaders.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osghangglide/osghangglide.cpp osghangglide.cpp] || [[Image(thumb_osghangglide.jpg)]] ||`osghangglide` ||The hang glide demo creates a simple flying site (Don Burns local hang glide site in fact!), demonstrating how to create simple terrain, trees and skydomes, and how to implement a simple flight camera manipulator to allow the user to fly around. || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osggpx/osggpx.cpp osggpx.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osghud/osghud.cpp osghud.cpp] || [[Image(thumb_osghud.jpg)]] ||`osghud glider.osg` ||Very similar to the basic osgviewer demo, but adds an orthographic projection over the top of the main 3D view to create a head up display effect. Also demonstrates how to use osgText. || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgimagesequence/osgimagesequence.cpp osgimagesequence.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgimpostor/osgimpostor.cpp osgimpostor.cpp] || [[Image(thumb_osgImposter.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgintersection/osgintersection.cpp osgintersection.cpp] || [[Image(thumb_osgIntersection.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgkdtree/osgkdtree.cpp osgkdtree.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgkeyboard/osgkeyboard.cpp osgkeyboard.cpp] || [[Image(thumb_osgKeyboard.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgkeyboardmouse/osgkeyboardmouse.cpp osgkeyboardmouse.cpp] || [[Image(thumb_osgKeyboardMouse.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osglauncher/osglauncher.cpp osglauncher.cpp] || [[Image(thumb_osgLauncher.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osglight/osglight.cpp osglight.cpp] || [[Image(thumb_osgLight.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osglightpoint/osglightpoint.cpp osglightpoint.cpp] || [[Image(thumb_osgLightPoint.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osglogicop/osglogicop.cpp osglogicop.cpp] || [[Image(thumb_osgLogicOp.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osglogo/osglogo.cpp osglogo.cpp] || [[Image(thumb_osgLogo.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgmanipulator/osgmanipulator.cpp osgmanipulator.cpp] || [[Image(thumb_osgmanipulator.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgmemorytest/osgmemorytest.cpp osgmemorytest.cpp] || || || More [wiki:Support/UserGuides/Examples/osgmemorytest osgmemorytest details] || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgmotionblur/osgmotionblur.cpp osgmotionblur.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgmovie/osgmovie.cpp osgmovie.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgmultiplerendertargets/osgmultiplerendertargets.cpp osgmultiplerendertargets.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgmultitexture/osgmultitexture.cpp osgmultitexture.cpp] || [[Image(thumb_osgMultitexture.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgmultitexturecontrol/osgmultitexturecontrol.cpp osgmultitexturecontrol.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgmultiviewpaging/osgmultiviewpaging.cpp osgmultiviewpaging.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgoccluder/osgoccluder.cpp osgoccluder.cpp] || [[Image(thumb_osgoccluder.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgocclusionquery/osgocclusionquery.cpp osgocclusionquery.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgoit/osgoit.cpp osgoit.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgpackeddepthstencil/osgpackeddepthstencil.cpp osgpackeddepthstencil.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgpagedlod/osgpagedlod.cpp osgpagedlod.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgparametric/osgparametric.cpp osgparametric.cpp] || [[Image(thumb_osgParametric.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgparticle/osgparticle.cpp osgparticle.cpp] || [[Image(thumb_osgParticle.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgparticleeffects/osgparticleeffects.cpp osgparticleeffects.cpp] || [[Image(thumb_osgParticleEffects.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgparticleshader/osgparticleshader.cpp osgparticleshader.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgpdf/osgpdf.cpp osgpdf.cpp] || || || depends on poppler and Cairo || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgphotoalbum/osgphotoalbum.cpp osgphotoalbum.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgpick/osgpick.cpp osgpick.cpp] || [[Image(thumb_osgPick.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgplanets/osgplanets.cpp osgplanets.cpp] || [[Image(thumb_osgPlanets.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgpoints/osgpoints.cpp osgpoints.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgpointsprite/osgpointsprite.cpp osgpointsprite.cpp] || [[Image(thumb_osgPointSprite.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgprecipitation/osgprecipitation.cpp osgprecipitation.cpp] || [[Image(thumb_osgprecipitation.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgprerender/osgprerender.cpp osgprerender.cpp] || [[Image(thumb_osgPrerender.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgprerendercubemap/osgprerendercubemap.cpp osgprerendercubemap.cpp] || [[Image(thumb_osgPrerenderCubemap.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgQtBrowser/osgQtBrowser.cpp osgQtBrowser.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgQtWidgets/osgQtWidgets.cpp osgQtWidgets.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgreflect/osgreflect.cpp osgreflect.cpp] || [[Image(thumb_osgreflect.jpg)]] ||`osgreflect cow.osg` ||An example of how to set up planar reflections using the standard multi-pass stencil buffer algorithm. This is all handled within the scene graph, so there is no need to hardwire multi-pass effects into your own application. || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgrobot/osgrobot.cpp osgrobot.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgscalarbar/osgscalarbar.cpp osgscalarbar.cpp] || [[Image(thumb_osgScalarBar.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgscreencapture/osgscreencapture.cpp osgscreencapture.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgscribe/osgscribe.cpp osgscribe.cpp] || [[Image(thumb_osgscribe.jpg)]] || osgscribe cow.osg || An example of how to decorate your scene graph geometry for useful effects such as scribing. This demo uses two instances of your model, the first one uses the state values set in your scene graph, the second instance override the polygmode to render it as wireframe, and with a polygon offset to ensure it is seen from all angles. These two instance are grouped together and then are treated like any other scene graph. || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgsequence/osgsequence.cpp osgsequence.cpp] || [[Image(thumb_osgSequence.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgshadercomposition/osgshadercomposition.cpp osgshadercomposition.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgshadergen/osgshadergen.cpp osgshadergen.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgshaders/osgshaders.cpp osgshaders.cpp] || [[Image(thumb_osgShaders.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgshaderterrain/osgshaderterrain.cpp osgshaderterrain.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgshadow/osgshadow.cpp osgshadow.cpp] || [[Image(thumb_osgShadow.jpg)]] || || Demonstrates diverse techniques for real-time shadow generation. More [wiki:Support/UserGuides/Examples/osgShadow osgShadow] || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgshape/osgshape.cpp osgshape.cpp] || [[Image(thumb_osgShape.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgsharedarray/osgsharedarray.cpp osgsharedarray.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgsidebyside/osgsidebyside.cpp osgsidebyside.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgsimplifier/osgsimplifier.cpp osgsimplifier.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgsimulation/osgsimulation.cpp osgsimulation.cpp] || [[Image(thumb_osgSimulation.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgslice/osgslice.cpp osgslice.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgspacewarp/osgspacewarp.cpp osgspacewarp.cpp] || [[Image(thumb_osgSpacewarp.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgspheresegment/osgspheresegment.cpp osgspheresegment.cpp] || [[Image(thumb_osgSphereSegment.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgspotlight/osgspotlight.cpp osgspotlight.cpp] || [[Image(thumb_osgSpotlight.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgstaticviewer/osgstaticviewer.cpp osgstaticviewer.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgstereoimage/osgstereoimage.cpp osgstereoimage.cpp] || [[Image(thumb_osgstereoimage.jpg)]] ||`osgstereoimage left.rgb right.rgb` ||An example of use node maks to select different parts of the scene graph for different traversals, in this case two separate images are drawn for the left and right eyes to generate a stereo 3D image from two flat images! || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgstereomatch/osgstereomatch.cpp osgstereomatch.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgteapot/osgteapot.cpp osgteapot.cpp] || [[Image(thumb_osgTeapot.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgterrain/osgterrain.cpp osgterrain.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgtessellate/osgtessellate.cpp osgtessellate.cpp] || [[Image(thumb_osgTesselate.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgtext/osgtext.cpp osgtext.cpp] || [[Image(thumb_osgtext.jpg)]] ||`osgtext` || An example showing how to create the various types of text that the osgText library supports. || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgtext3D/osgtext3D.cpp osgtext3D.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgtexture1D/osgtexture1D.cpp osgtexture1D.cpp] || [[Image(thumb_osgTexture1D.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgtexture1D/osgtexture2D.cpp osgtexture2D.cpp] || [[Image(thumb_osgTexture2D.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgtexture3D/osgtexture3D.cpp osgtexture3D.cpp] || [[Image(thumb_osgTexture3D.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgtexturecompression/osgtexturecompression.cpp osgtexturecompression.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgtexturerectangle/osgtexturerectangle.cpp osgtexturerectangle.cpp] || [[Image(thumb_osgTextureRectangle.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgthirdpersonview/osgthirdpersonview.cpp osgthirdpersonview.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgthreadedterrain/osgthreadedterrain.cpp osgthreadedterrain.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgunittests/osgunittests.cpp osgunittests.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osguserstats/osguserstats.cpp osguserstats.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgvertexattributes/osgvertexattributes.cpp osgvertexattributes.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgvertexprogram/osgvertexprogram.cpp osgvertexprogram.cpp] || [[Image(thumb_osgvertexprogram.jpg)]] || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgviewerCocoa/ViewerCocoa.mm ViewerCocoa.mm] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgviewerFLTK/osgviewerFLTK.cpp osgviewerFLTK.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgviewerFOX/osgviewerFOX.cpp osgviewerFOX.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgviewerGLUT/osgviewerGLUT.cpp osgviewerGLUT.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgviewerGTK/osgviewerGTK.cpp osgviewerGTK.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgviewerMFC/osgviewerMFC.cpp osgviewerMFC.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgviewerQT/osgviewerQT.cpp osgviewerQT.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgviewerQtContext/osgviewerQtContext.cpp osgviewerQTcontext.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgviewerQtWidget/QOSGWidget.cpp QOSGWidget.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgviewerSDL/osgviewerSDL.cpp osgviewerSDL.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgviewerWX/osgviewerWX.cpp osgviewerWX.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgvirtualprogram/osgvirtualprogram.cpp osgvirtualprogram.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgvnc/osgvnc.cpp osgvnc.cpp] || || || depends on libvnc || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgvolume/osgvolume.cpp osgvolume.cpp] || || || More [wiki:Support/UserGuides/Examples/osgVolume osgVolume details] || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgwidgetaddremove/osgwidgetaddremove.cpp osgwidgetaddremove.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgwidgetbox/osgwidgetbox.cpp osgwidgetbox.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgwidgetcanvas/osgwidgetcanvas.cpp osgwidgetcanvas.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgwidgetframe/osgwidgetframe.cpp osgwidgetframe.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgwidgetinput/osgwidgetinput.cpp osgwidgetinput.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgwidgetlabel/osgwidgetlabel.cpp osgwidgetlabel.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgwidgetmenu/osgwidgetmenu.cpp osgwidgetmenu.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgwidgetmessagebox/osgwidgetmessagebox.cpp osgwidgetmessagebox.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgwidgetnotebook/osgwidgetnotebook.cpp osgwidgetnotebook.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgwidgetperformance/osgwidgetperformance.cpp osgwidgetperformance.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgwidgetprogress/osgwidgetprogress.cpp osgwidgetprogress.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgwidgetscrolled/osgwidgetscrolled.cpp osgwidgetscrolled.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgwidgetshader/osgwidgetshader.cpp osgwidgetshader.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgwidgetstyled/osgwidgetstyled.cpp osgwidgetstyled.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgwidgettable/osgwidgettable.cpp osgwidgettable.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgwidgetwindow/osgwidgetwindow.cpp osgwidgetwindow.cpp] || || || || ||[http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgwindows/osgwindows.cpp osgwindows.cpp] || [[Image(thumb_osgWindows.jpg)]] || || ||