OpenSceneGraph/examples
Robert Osfield 4c5a1885d2 From PawelKsiezopolski, "This submission contains a new example for OSG : a geometry instancing rendering
algorithm consisting of two consequent phases :

- first phase is a GLSL shader performing object culling and LOD picking ( a culling shader ).
  Every culled object is represented as GL_POINT in the input osg::Geometry.
  The output of the culling shader is a set of object LODs that need to be rendered.
  The output is stored in texture buffer objects. No pixel is drawn to the screen
  because GL_RASTERIZER_DISCARD mode is used.

- second phase draws osg::Geometry containing merged LODs using glDrawArraysIndirect()
  function. Information about quantity of instances to render, its positions and other
  parameters is sourced from texture buffer objects filled in the first phase.

The example uses various OpenGL 4.2 features such as texture buffer objects,
atomic counters, image units and functions defined in GL_ARB_shader_image_load_store
extension to achieve its goal and thus will not work on graphic cards with older OpenGL
versions.

The example was tested on Linux and Windows with NVidia 570 and 580 cards.
The tests on AMD cards were not conducted ( due to lack of it ).
The tests were performed using OSG revision 14088.

The main advantages of this rendering method :
- instanced rendering capable of drawing thousands of different objects with
  almost no CPU intervention  ( cull and draw times are close to 0 ms ).
- input objects may be sourced from any OSG graph ( for example - information about
  object points may be stored in a PagedLOD graph. This way we may cover the whole
  countries with trees, buildings and other objects ).
  Furthermore if we create osgDB plugins that generate data on the fly, we may
  generate information for every grass blade for that country.
- every object may have its own parameters and thus may be distinct from other objects
  of the same type.
- relatively low memory footprint ( single object information is stored in a few
  vertex attributes ).
- no GPU->CPU roundtrip typical for such methods ( method uses atomic counters
  and glDrawArraysIndirect() function instead of OpenGL queries. This way
  information about quantity of rendered objects never goes back to CPU.
  The typical GPU->CPU roundtrip cost is about 2 ms ).
- this example also shows how to render dynamic objects ( objects that may change
  its position ) with moving parts ( like car wheels or airplane propellers ) .
  The obvious extension to that dynamic method would be the animated crowd rendering.
- rendered objects may be easily replaced ( there is no need to process the whole
  OSG graphs, because these graphs store only positional information ).

The main disadvantages of a method :
- the maximum quantity of objects to render must be known beforehand
  ( because texture buffer objects holding data between phases have constant size ).
- OSG statistics are flawed ( they don't know anymore how many objects are drawn ).
- osgUtil::Intersection does not work

Example application may be used to make some performance tests, so below you
will find some extended parameter description :
--skip-dynamic       - skip rendering of dynamic objects if you only want to
                       observe static object statistics
--skip-static        - the same for static objects
--dynamic-area-size  - size of the area for dynamic rendering. Default = 1000 meters
                       ( square 1000m x 1000m ). Along with density defines
                       how many dynamic objects is there in the example.
--static-area-size   - the same for static objects. Default = 2000 meters
                       ( square 2000m x 2000m ).

Example application defines some parameters (density, LOD ranges, object's triangle count).
You may manipulate its values using below described modifiers:
--density-modifier   - density modifier in percent. Default = 100%.
                       Density ( along with LOD ranges ) defines maximum
                       quantity of rendered objects. registerType() function
                       accepts maximum density ( in objects per square kilometer )
                       as its parameter.
--lod-modifier       - defines the LOD ranges. Default = 100%.
--triangle-modifier  - defines the number of triangles in finally rendered objects.
                       Default = 100 %.
--instances-per-cell - for static rendering the application builds OSG graph using
                       InstanceCell class ( this class is a modified version of Cell class
                       from osgforest example - it builds simple quadtree from a list
                       of static instances ). This parameter defines maximum number
                       of instances in a single osg::Group in quadtree.
                       If, for example, you modify it to value=100, you will see
                       really big cull time in OSG statistics ( because resulting
                       tree generated by InstanceCell will be very deep ).
                       Default value = 4096 .
--export-objects     - write object geometries and quadtree of instances to osgt files
                       for later analysis.
--use-multi-draw     - use glMultiDrawArraysIndirect() instead of glDrawArraysIndirect() in a
                       draw shader. Thanks to this we may render all ( different ) objects
                       using only one draw call. Requires OpenGL version 4.3 and some more
                       work from me, because now it does not work ( probably I implemented
                       it wrong, or Windows NVidia driver has errors, because it hangs
                       the apllication at the moment ).

This application is inspired by Daniel Rákos work : "GPU based dynamic geometry LOD" that
may be found under this address : http://rastergrid.com/blog/2010/10/gpu-based-dynamic-geometry-lod/
There are however some differences :
- Daniel Rákos uses GL queries to count objects to render, while this example
  uses atomic counters ( no GPU->CPU roundtrip )
- this example does not use transform feedback buffers to store intermediate data
  ( it uses texture buffer objects instead ).
- I use only the vertex shader to cull objects, whereas Daniel Rákos uses vertex shader
  and geometry shader ( because only geometry shader can send more than one primitive
  to transform feedback buffers ).
- objects in the example are drawn using glDrawArraysIndirect() function,
  instead of glDrawElementsInstanced().

Finally there are some things to consider/discuss  :
- the whole algorithm exploits nice OpenGL feature that any GL buffer
  may be bound as any type of buffer ( in our example a buffer is once bound
  as a texture buffer object, and later is bound as GL_DRAW_INDIRECT_BUFFER ).
  osg::TextureBuffer class has one handy method to do that trick ( bindBufferAs() ),
  and new primitive sets use osg::TextureBuffer as input.
  For now I added new primitive sets to example ( DrawArraysIndirect and
  MultiDrawArraysIndirect defined in examples/osggpucull/DrawIndirectPrimitiveSet.h ),
  but if Robert will accept its current implementations ( I mean - primitive
  sets that have osg::TextureBuffer in constructor ), I may add it to
  osg/include/PrimitiveSet header.
- I used BufferTemplate class writen and published by Aurelien in submission forum
  some time ago. For some reason this class never got into osg/include, but is
  really needed during creation of UBOs, TBOs, and possibly SSBOs in the future.
  I added std::vector specialization to that template class.
- I needed to create similar osg::Geometries with variable number of vertices
  ( to create different LODs in my example ). For this reason I've written
  some code allowing me to create osg::Geometries from osg::Shape descendants.
  This code may be found in ShapeToGeometry.* files. Examples of use are in
  osggpucull.cpp . The question is : should this code stay in example, or should
  it be moved to osgUtil ?
- this remark is important for NVidia cards on Linux and Windows : if
  you have "Sync to VBlank" turned ON in nvidia-settings and you want to see
  real GPU times in OSG statistics window, you must set the power management
  settings to "Prefer maximum performance", because when "Adaptive mode" is used,
  the graphic card's clock may be slowed down by the driver during program execution
  ( On Linux when OpenGL application starts in adaptive mode, clock should work
  as fast as possible, but after one minute of program execution, the clock slows down ).
  This happens when GPU time in OSG statistics window is shorter than 3 ms.
"


git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14531 16af8721-9629-0410-8352-f15c8da7e697
2014-11-25 10:58:23 +00:00
..
osg2cpp Changed the default directory for the output files to be the current working directory, 2014-01-20 17:03:29 +00:00
osganalysis From Alberto Luacas, typo fixes 2011-07-17 16:24:47 +00:00
osgAndroidExampleGLES1 From Jordi Torres, "We must use JNI_FALSE instead of false in JNI code. Otherwise the examples will not compile. This patch should be applied to osgAndroidExampleGLES1/jni and osgAndroidExampleGLES2/jni. the osgNativeLib.cpp is the same. " 2013-05-24 17:06:08 +00:00
osgAndroidExampleGLES2 From Jordi Torres, "We must use JNI_FALSE instead of false in JNI code. Otherwise the examples will not compile. This patch should be applied to osgAndroidExampleGLES1/jni and osgAndroidExampleGLES2/jni. the osgNativeLib.cpp is the same. " 2013-05-24 17:06:08 +00:00
osganimate Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osganimationeasemotion Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:59:33 +00:00
osganimationhardware Clean up up osg::Geometry, removing long deprecated support for array indices and BIND_PER_PRIMITIVE binding that forced OpenGL slow paths. osg::Geometry is now smaller and only supports OpenGL fasts paths. 2013-06-18 11:18:28 +00:00
osganimationmakepath Converted FrameStamp::g/setFrameNumber from int to uint 2010-12-22 20:11:05 +00:00
osganimationmorph Fixed memory leak by introducing use of ref_ptr<> 2010-12-20 12:03:56 +00:00
osganimationnode Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osganimationskinning Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:59:33 +00:00
osganimationsolid Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:59:33 +00:00
osganimationtimeline Introduce new osgGA::Event and osgGA::EventHandler base classes that the old GUIEventAdapter and GUIEventHandler now subclass from. 2013-10-25 14:54:15 +00:00
osganimationviewer Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:59:33 +00:00
osgatomiccounter From David Callu, "Here an update of osg::Uniform : 2012-03-29 09:43:12 +00:00
osgautocapture From Christophe Herreman, Added viewer.setCameraManipulator( keyswitchManipulator.get() ) to fix problem with master Camera not being updated 2012-04-26 10:07:36 +00:00
osgautotransform Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgbillboard Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgblendequation Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
osgcallback Fixed build 2014-08-19 09:00:42 +00:00
osgcamera Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
osgcatch Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
osgclip Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
osgcluster Introduce new osgGA::Event and osgGA::EventHandler base classes that the old GUIEventAdapter and GUIEventHandler now subclass from. 2013-10-25 14:54:15 +00:00
osgcompositeviewer Introduced new scheme for handling mouse events with osgViewer. The new scheme enables robust event handling even when using distortion correction render to texture Cameras. 2013-05-03 19:26:27 +00:00
osgcomputeshaders From Sebastian Messerschmidt, "Original shader was not running on various NVidia cards due to old syntax in shader." 2014-01-07 16:15:50 +00:00
osgcopy Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
osgcubemap Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
osgdatabaserevisions Fixed typo of commercial 2010-11-22 11:22:03 +00:00
osgdelaunay Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgdepthpartition Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgdepthpeeling Further work on Bound class/Node::getBound() and Drawable::getBound() and usage in OSG codebase 2014-05-14 16:01:40 +00:00
osgdirectinput Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
osgdistortion Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgdrawinstanced Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
osgfadetext From Mathias Froehlich, "n examples/osgfadetext/CMakeLists.txt osgSim as dependency is missing." 2007-12-06 17:07:04 +00:00
osgfont Added StateSet event handler to osgfont and osgtext to aid with debugging 2010-03-18 17:10:48 +00:00
osgforest 2014-05-14 10:19:43 +00:00
osgfpdepth Refactored Callback system in osg::Node, osg::Drawable, osg::StateSet and osg::StateAttribute to use a new osg::Callback base class. 2014-06-05 16:26:13 +00:00
osgframerenderer Added support for RGBA colour buffer in osgframerenderer using the --rgba command line option (--rgb selects the standard non colour frame buffer which is the default). 2012-12-17 15:58:57 +00:00
osgfxbrowser Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osggameoflife Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osggeometry Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osggeometryshaders Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osggpucull From PawelKsiezopolski, "This submission contains a new example for OSG : a geometry instancing rendering 2014-11-25 10:58:23 +00:00
osggpx Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osggraphicscost Moved GraphicsCostEstimator from osgUtil into core OSG library 2011-02-03 12:22:09 +00:00
osghangglide Fixed warning 2013-10-24 20:22:13 +00:00
osghud Further work on Bound class/Node::getBound() and Drawable::getBound() and usage in OSG codebase 2014-05-14 16:01:40 +00:00
osgimagesequence Refactored ImageSequence to better handle random access usage. 2012-11-08 11:19:31 +00:00
osgimpostor With assistance from Sukender, moved the depreacted osg::Geometry vertex indices and AttributeBinding definitions out into a separated namespace/class so to use 2013-06-25 16:10:24 +00:00
osgintersection From Martin Lavery and Robert Osfield, Updated examples to use a variation of the MIT License 2007-06-12 14:20:16 +00:00
osgkdtree Cleaned up osgkdtree example 2008-07-12 11:19:25 +00:00
osgkeyboard From Alexander Sinditskiy, "reason of this changes described in http://forum.openscenegraph.org/viewtopic.php?t=7596 2011-01-27 16:23:48 +00:00
osgkeyboardmouse Reverted change of Node::ParentList from being a vector<Node*> back to a vector<Group*> 2014-06-03 09:52:55 +00:00
osgkeystone Refactored the support for stereo and keystone RTT setup so that it can be applied to an existing Camera. 2013-05-20 19:24:34 +00:00
osglauncher Introduced new scheme for handling mouse events with osgViewer. The new scheme enables robust event handling even when using distortion correction render to texture Cameras. 2013-05-03 19:26:27 +00:00
osglight Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osglightpoint From Martin Lavery and Robert Osfield, Updated examples to use a variation of the MIT License 2007-06-12 14:20:16 +00:00
osglogicop Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
osglogo Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgmanipulator From Andreas Henne, "in my application I use the TrackballDragger, the ScaleAxisDragger and the TranslateAxisDragger. Unfortunately these draggers are very thin and they do not provide methods to change their visual appearance. Another problem that I noticed is that lighting on the cones and boxes of the TranslateAxisDragger and ScaleAxisDragger is incorrect when the draggers are scaled due to not normalized normals. This small patch adresses these problems, providing methods to make the draggers thicker. I have attached a zip archive containing the corresponding files and also a modified osgManipulator example that makes use of the modifications. I don't want to retain any copyright." 2013-10-18 07:31:22 +00:00
osgmemorytest From Gary Quinn, spelling fixes 2009-02-06 15:17:49 +00:00
osgmotionblur Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
osgmovie Introduced new scheme for handling mouse events with osgViewer. The new scheme enables robust event handling even when using distortion correction render to texture Cameras. 2013-05-03 19:26:27 +00:00
osgmultiplemovies From Laurens Voerman, "two minor fixes, both in a CMakeList.txt file, 2013-09-09 12:33:18 +00:00
osgmultiplerendertargets Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgmultitexture Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
osgmultitexturecontrol Converted FrameStamp::g/setFrameNumber from int to uint 2010-12-22 20:11:05 +00:00
osgmultitouch From Stephan Huber, * GUIEventAdapter: add support for getting normalized touch points 2013-11-18 13:25:55 +00:00
osgmultiviewpaging From Mathias Froehlich, "Attached are most of the fixes that are required to build osg on solaris and 2010-12-02 14:13:54 +00:00
osgoccluder Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgocclusionquery With assistance from Sukender, moved the depreacted osg::Geometry vertex indices and AttributeBinding definitions out into a separated namespace/class so to use 2013-06-25 16:10:24 +00:00
osgoit Further work on Bound class/Node::getBound() and Drawable::getBound() and usage in OSG codebase 2014-05-14 16:01:40 +00:00
osgoscdevice From Stephan Huber, * GUIEventAdapter: add support for getting normalized touch points 2013-11-18 13:25:55 +00:00
osgoutline Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
osgpackeddepthstencil Fix for build with OSG_USE_REF_PTR_IMPLICIT_OUTPUT_CONVERSION off 2008-11-25 15:57:27 +00:00
osgpagedlod From Alberto Luacas, typo fixes 2011-07-17 16:24:47 +00:00
osgparametric Fixed compile warnings 2009-12-15 14:45:33 +00:00
osgparticle From Martin Scheffler, "osgParticle: method to set start and end tile for particle texture (for animated particles). I also updated examples/osgParticle to show the feature. 2009-11-24 15:00:11 +00:00
osgparticleeffects Reverted change of Node::ParentList from being a vector<Node*> back to a vector<Group*> 2014-06-03 09:52:55 +00:00
osgparticleshader From Wang Rui, reverted changes to osgPartcile that caused problems with osgparticleeffects. 2010-09-20 11:50:24 +00:00
osgpdf Cleaned up osgWidget::VncClient and osgWidget::Browser so that their implementations are all more consitent with the osgWidget::PdfReader. 2008-12-09 11:05:04 +00:00
osgphotoalbum Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:59:33 +00:00
osgpick Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgplanets Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgpoints From Paul Martz, added --points option for forcing points rendering of polygonal models 2009-01-05 17:06:09 +00:00
osgpointsprite Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgposter Refactored Callback system in osg::Node, osg::Drawable, osg::StateSet and osg::StateAttribute to use a new osg::Callback base class. 2014-06-05 16:26:13 +00:00
osgprecipitation Added support for user defined clipping of the precipitation effect, to test use: 2008-12-19 16:13:19 +00:00
osgprerender Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgprerendercubemap From Roland Smeenk, "Attached you will find a large set of small typo fixes (mainly in the comments)." 2007-12-10 17:30:18 +00:00
osgpresentation Added readScript/writeScript methods to ReaderWriter 2014-07-14 15:59:06 +00:00
osgqfont Further work on Bound class/Node::getBound() and Drawable::getBound() and usage in OSG codebase 2014-05-14 16:01:40 +00:00
osgQtBrowser Replaced use of while(isRunning()) { YieldCurrentThread(); } style loops with use of join() to avoid false positives being reported by valgrind when using the helgrind tool for thread debugging. 2014-11-04 10:46:59 +00:00
osgQtWidgets From Wang Rui, "The submission includes some fixes for osgQt library and osgQtWidgets example: (1) QTextEdit now works with mouse/drag events, (2) scrollbars will change when OSG window is resizing, (3) improve rendering efficiency of QGraphicsViewAdapter so that it works with complex Qt UI, (4) add new setBackgroundWidget() method to indicate a 'background widget', which will ignore mouse/key events on it and pass them to the 3D scene." 2014-11-19 11:30:53 +00:00
osgreflect Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgrobot From Jean-Sebastien Guay, replaced M_PI with osg::PI. 2008-11-08 17:53:51 +00:00
osgscalarbar From Kristofer Tingdahl, "the vertical bar is upside down, and hence not as the documentation says it should be. This is corrected with this patch" 2014-01-28 11:01:28 +00:00
osgscreencapture Added support for using GL_UNPACK_ROW_LENGTH in conjunction with texture's + osg::Image via new RowLength 2012-01-24 14:34:02 +00:00
osgscribe Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
osgsequence Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
osgshadercomposition Added debug State::print(std::ostream&) method and extra debug messages in ShaderComposer and ShaderAttribute. 2010-07-10 17:14:59 +00:00
osgshadergen Ran svn propset -R svn:eol-style native . on the OpenSceneGraph 2011-04-19 11:40:22 +00:00
osgshaders Moved osgshaders example across to use the new osgUtil::PerlinNoise example 2011-12-13 21:14:33 +00:00
osgshaderterrain Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgshadow Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgshape Added enabling of lighting, and disabling of mipmapping to help out testing of GLES2 target 2009-11-10 12:01:28 +00:00
osgsharedarray Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgsidebyside Changed NodeVisitor so that is subclasses from osg::Object rather than osg::Referenced to enable it to be used with serialization and scripting 2013-09-24 15:08:23 +00:00
osgsimplegl3 Fixed osgsimplegl3 example's set up of the main camera. 2014-11-24 14:09:14 +00:00
osgsimpleshaders From Christian Buchner, "The attached openscenegraph example is much simpler than 2012-03-06 10:29:47 +00:00
osgsimplifier Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
osgsimulation Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
osgslice From Roland Smeenk, "Attached you will find a large set of small typo fixes (mainly in the comments)." 2007-12-10 17:30:18 +00:00
osgspacewarp Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgspheresegment Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgspotlight Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
osgstaticviewer From Wang Rui, "I've finally completed the static build support for dotosg wrapper and 2010-11-11 11:47:24 +00:00
osgstereoimage Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgstereomatch Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgteapot 2014-05-14 10:19:43 +00:00
osgterrain Added --db-affinit cpuNum option to osgterrain example to illustrate how to set the thead affinity of the DatabasePager threads. 2014-11-21 14:46:08 +00:00
osgtessellate Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgtessellationshaders Introduced new osg::PatchParameter StateAttribute class to wrap up glPatchParameter associated state. 2013-06-11 10:52:37 +00:00
osgtext Further work on Bound class/Node::getBound() and Drawable::getBound() and usage in OSG codebase 2014-05-14 16:01:40 +00:00
osgtext3D Resolved warnings reported by g++ 4.6's -Wunused-but-set-variable. 2011-06-22 12:30:01 +00:00
osgtexture1D Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
osgtexture2D Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgtexture3D Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgtexturecompression Added osgtexturecompression example to demonstate the quality difference between 2009-03-26 17:24:28 +00:00
osgtexturerectangle Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgthirdpersonview Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgthreadedterrain Resolved warnings reported by g++ 4.6's -Wunused-but-set-variable. 2011-06-22 12:30:01 +00:00
osgtransferfunction Build fix 2014-09-08 08:53:23 +00:00
osguniformbuffer From Tim Moore, "Here is initial support for uniform buffer objects. The binding between a buffer object and an indexed target is implemented as a new StateAttribute, UniformBufferBinding. I've included an example program based on the code in the ARB_uniform_buffer_object specification. 2010-11-29 17:43:27 +00:00
osgunittests Replaced use of while(isRunning()) { YieldCurrentThread(); } style loops with use of join() to avoid false positives being reported by valgrind when using the helgrind tool for thread debugging. 2014-11-04 10:46:59 +00:00
osguserdata Refactored the UserDataContainer so that the osg::UserDataContainer is now a pure virtual base class, 2011-06-09 12:57:14 +00:00
osguserstats Replaced use of while(isRunning()) { YieldCurrentThread(); } style loops with use of join() to avoid false positives being reported by valgrind when using the helgrind tool for thread debugging. 2014-11-04 10:46:59 +00:00
osgvertexattributes Replaced deprecated osg::Geometry::set*Binding() usage. 2013-06-27 09:54:12 +00:00
osgvertexprogram Refactored Callback system in osg::Node, osg::Drawable, osg::StateSet and osg::StateAttribute to use a new osg::Callback base class. 2014-06-05 16:26:13 +00:00
osgviewerCocoa From Stephan Huber, build fix 2013-10-17 14:02:15 +00:00
osgviewerFLTK Added setting of the Camera's projection matrix to fit the windowing aspect ratio. 2007-06-23 11:21:54 +00:00
osgviewerFOX From Colin McDonald and Robert Osfield, converted Traits::sharedContext from GraphicsContext* to osg:observer_ptr<GraphicsContext> to prevent dangling pointer issues. 2012-09-05 21:03:41 +00:00
osgviewerGLUT From Jean-Sebastien Guay, warning fixes 2009-02-05 10:14:49 +00:00
osgviewerGTK Removed std:: from in front of strcmp and added a string.h 2008-09-01 10:19:06 +00:00
osgviewerIPhone From Stephan Huber, "attached are some fixes to the osc-plugin and the touch-implementations for iOS and os x and other small bugfixes. These fixes will normalize the orientation of the touch points, and transmitting the touch points over osc via the TUIO-protocol works now more robustly between two osg-applications. 2014-01-23 15:37:48 +00:00
osgviewerMFC Replaced use of while(isRunning()) { YieldCurrentThread(); } style loops with use of join() to avoid false positives being reported by valgrind when using the helgrind tool for thread debugging. 2014-11-04 10:46:59 +00:00
osgviewerQt From Kristofer Tingdahl, "I and my team have gone over the code again, and we feel that we are comfortable in our current proposal for change. It goes deeper than it did before, and I explain why: 2014-04-24 17:14:54 +00:00
osgviewerSDL From Jean-Sebastien Guay, build fixes for Mingw 2010-01-18 14:27:20 +00:00
osgviewerWX From Colin McDonald and Robert Osfield, converted Traits::sharedContext from GraphicsContext* to osg:observer_ptr<GraphicsContext> to prevent dangling pointer issues. 2012-09-05 21:03:41 +00:00
osgvirtualprogram From Magnus Kessler, "After a closer look at this particular issue, I used some grep and sed magic 2010-09-30 16:57:02 +00:00
osgvnc Added password support into osgvnc example and vnc plugin 2011-10-26 12:29:38 +00:00
osgvolume Changed osgvolume example to use the new tf plugin rather than having local code for reading transfer function 2014-09-16 17:40:13 +00:00
osgwidgetaddremove From Mattias Helsing, "Fixes two of the osgWidget examples that were broken due to changed 2011-04-26 12:07:37 +00:00
osgwidgetbox Introduced new scheme for handling mouse events with osgViewer. The new scheme enables robust event handling even when using distortion correction render to texture Cameras. 2013-05-03 19:26:27 +00:00
osgwidgetcanvas Resolved warnings reported by g++ 4.6's -Wunused-but-set-variable. 2011-06-22 12:30:01 +00:00
osgwidgetframe From Jeremy Moles, updates to osgwidget examples. 2008-11-28 14:36:39 +00:00
osgwidgetinput From Jeremy Moles, updates to osgwidget examples. 2008-11-28 14:36:39 +00:00
osgwidgetlabel From Jeremy Moles, updates to osgwidget examples. 2008-11-28 14:36:39 +00:00
osgwidgetmenu From Alberto Luacas, typo fixes 2011-07-17 16:24:47 +00:00
osgwidgetmessagebox Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
osgwidgetnotebook From Jeremy Moles, updates to osgwidget examples. 2008-11-28 14:36:39 +00:00
osgwidgetperformance From Jeremy Moles, updates to osgwidget examples. 2008-11-28 14:36:39 +00:00
osgwidgetprogress Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
osgwidgetscrolled Intoduce new osgWidget::PdfReader and osgWidget::VncClient front ends to osgWidget, 2008-12-07 17:02:30 +00:00
osgwidgetshader Renamed enums in osgWidget from ALLCAPITALS to normal OSG conventional of AllCapital 2008-07-25 20:50:42 +00:00
osgwidgetstyled Fixed warnings 2008-12-18 13:56:30 +00:00
osgwidgettable From Cedric Pinson and Jeremey Moles, Changes to OpenSceneGraph-osgWidget-dev branch. 2008-12-16 20:29:00 +00:00
osgwidgetwindow Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
osgwindows Replaced .osg with .osgt file usage 2011-06-14 16:54:20 +00:00
CMakeLists.txt From PawelKsiezopolski, "This submission contains a new example for OSG : a geometry instancing rendering 2014-11-25 10:58:23 +00:00