OpenSceneGraph/include/osg
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
..
AlphaFunc Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
AnimationPath 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
ApplicationUsage Moved the expansion of the key codes into ApplicationUsage so that help is only generated for non zero keycodes. 2012-12-05 10:13:51 +00:00
ArgumentParser Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Array From Pjotr Svetachov, "The binding of arrays is always set to BIND_UNDEFINED when using the array constructor because the binding parameter is ignored. Here is a fix." 2013-07-02 09:44:46 +00:00
ArrayDispatchers Removed unused methods 2013-06-26 12:59:40 +00:00
AudioStream From Laurens Voerman, compile fix for VisualStudio 2013-10-10 14:45:57 +00:00
AutoTransform From Javier Taibo, "ere is the new code with Billboard "rotate around axis" functionality. 2010-11-05 17:24:50 +00:00
Billboard Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
BlendColor Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
BlendEquation Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
BlendFunc Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
BoundingBox Fixed build when using of double BoundingBox/BoundingSphere 2014-04-07 15:04:34 +00:00
BoundingSphere Removed OSG_USE_BOUND and associated osg::Bound adapter class to avoid problems with BoundingBox::expandBy/expandByRadius() implementation choosing a null BoundingBox from 2014-06-02 16:20:39 +00:00
BoundsChecking Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
buffered_value Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
BufferIndexBinding From David Callu, "Here an update of osg::Uniform : 2012-03-29 09:43:12 +00:00
BufferObject From Laurens Voerman, "the current version of BufferObject causes a huge amount of warnings in Visual Studio 2012 like: 2013-06-28 14:08:36 +00:00
BufferTemplate From PawelKsiezopolski, "This submission contains a new example for OSG : a geometry instancing rendering 2014-11-25 10:58:23 +00:00
Callback Implemented osgUI::Validator, IntValidator and DoubleValidator classes that manage validation/specialization of LineEdit widgets to work with just integer or double values. 2014-08-05 18:32:45 +00:00
Camera Added a render order sort to the list of Cameras being tested by the *Viewer::generatePointerData(..) method to ensure that the highest Camera gets focus. 2014-06-27 15:30:56 +00:00
CameraView Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
ClampColor Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
ClearNode Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
ClipNode Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
ClipPlane Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
ClusterCullingCallback Replaced using NodeCallback::run with explict run() implementation. 2014-06-28 06:22:47 +00:00
CollectOccludersVisitor From Laurens Voerman, compile fix for VisualStudio 2013-10-10 14:45:57 +00:00
ColorMask Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
ColorMatrix Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
ComputeBoundsVisitor Added handling of Drawables added directly to scene graph without Geode decorating them. 2014-07-28 16:19:44 +00:00
ConvexPlanarOccluder Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
ConvexPlanarPolygon Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
CoordinateSystemNode Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
CopyOp 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
CullFace Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
CullingSet Further work on Bound class/Node::getBound() and Drawable::getBound() and usage in OSG codebase 2014-05-14 16:01:40 +00:00
CullSettings Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
CullStack From Laurens Voerman, "I have implemented and tested (on windows only) your suggestion for resetCullingMask(), it's far less intrusive than my previous submission. 2013-01-28 14:30:21 +00:00
DeleteHandler From Magnus Kessler, typo and documentation fixes 2012-03-29 15:08:15 +00:00
Depth Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
DisplaySettings Added osg::SyncSwapBuffersCallback to include/osg/GraphicsContext and support for enabling it to include/osg/DisplaySettings, and to the Viewer/CompositeViewer::realize() methods. 2014-10-21 14:46:12 +00:00
Drawable Added using Callback::run() method to Drawable::CullCallback 2014-06-10 08:50:42 +00:00
DrawPixels 2014-05-14 10:19:43 +00:00
Endian Added template swapBytes method 2012-12-07 19:04:49 +00:00
Export Reverted the usage of OSG_UNUSED and OT_UNUSED as in hindsight these should never have been merged. Adding code to quieten 2013-07-01 08:21:13 +00:00
fast_back_stack Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Fog Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
FragmentProgram Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
FrameBufferObject From Aurelien Albert, "Here is the code to get access to OpenGL handle of an osg::FrameBufferObject" 2013-07-31 07:11:07 +00:00
FrameStamp Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
FrontFace Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Geode Refactor osg::Geode to subclass from osg::Group and reuse the NodeList children container 2014-06-03 09:23:24 +00:00
Geometry Added Node::asDrawable() and Node::asGeometry() methods to provide a low cost way of casting a node to Drawable and Geoemtry. 2014-05-15 09:26:59 +00:00
GL2Extensions From Paul Martz, "We discussed the issue of GL_RED_SNORM and GL_RG_SNORM some time ago, but the issue was never completely resolved. Please see the attached submission to fix the issue. 2014-04-07 13:48:15 +00:00
GLBeginEndAdapter From Farshid Lashkari, Added GLBeginEndAdapter::reset(), and _overallNormalAssigned, _overallColorAssigned flags to avoid the GLBeginEndAdapter adapter setting colour and normals when none has been assigned. 2012-09-20 11:18:19 +00:00
GLExtensions Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
GLObjects Fixed typo 2012-08-22 16:39:47 +00:00
GLU Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
GraphicsContext Added osg::SyncSwapBuffersCallback to include/osg/GraphicsContext and support for enabling it to include/osg/DisplaySettings, and to the Viewer/CompositeViewer::realize() methods. 2014-10-21 14:46:12 +00:00
GraphicsCostEstimator Added newline to end of file 2011-05-12 18:40:18 +00:00
GraphicsThread Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Group Changed the Node::ParentList to be a list of osg::Node rather than osg::Group, and added addChild, removeChild, replaceChild virtual method to Node to enable code 2014-05-13 08:43:07 +00:00
Hint Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Image Added comment clarifying how Image::getColor(..) out of 0..1 range texcoords are handled - now clamped to edge. 2014-11-21 20:15:30 +00:00
ImageSequence Added LOAD_AND_RETAIN_IN_UPDATE_TRAVERSAL and LOAD_AND_DISCARD_IN_UPDATE_TRAVERSAL ImageSequence::Mode's to allow for ImageSequence usage without using background paging threads, instead loading all the images on demand in the update traversal. 2013-01-18 16:21:17 +00:00
ImageStream From David Callu, warning fixes and removal of spaces at end of lines. 2013-06-28 12:00:43 +00:00
ImageUtils Introduced a cast(T) method into the ImageUtils template functor to allow code reading images to handle casting from source data to a form that a user can use more conviently 2013-11-06 09:23:21 +00:00
io_utils Introduced a cast(T) method into the ImageUtils template functor to allow code reading images to handle casting from source data to a form that a user can use more conviently 2013-11-06 09:23:21 +00:00
KdTree Revised KdTreeBuilder so that is used the new apply(osg::Geometry&) method rather than expanding an osg::Geode. 2014-06-26 14:16:11 +00:00
Light Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
LightModel Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
LightSource Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
LineSegment Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
LineStipple Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
LineWidth Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
LOD From Ulrich Hertlein, "Attached is a patch that introduces 'static_cast<unsigned int>' on some instances where 2013-05-14 16:12:21 +00:00
LogicOp Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Material Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Math From Björn Blissing, "I found a minor error in documentation in include/osg/Math. 2014-06-25 08:21:13 +00:00
Matrix Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Matrixd Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Matrixf Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
MatrixTransform Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
MixinVector Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Multisample Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Node From Glen Waldron, "Node: patch for remove*Callback() methods to resolve a crash" 2014-08-08 15:45:54 +00:00
NodeCallback 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
NodeTrackerCallback 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
NodeVisitor Added NodeVisitor::INTERSECTION_VISITOR VisitorType 2014-07-31 18:29:31 +00:00
Notify Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Object Introduced use of MarkerObject to IncrmentalCompileOperation/DatabasePager as a way of marking objects that have already been processed and compiled, 2014-11-06 10:40:54 +00:00
Observer From Magnus Kessler, typo and documentation fixes 2012-03-29 15:08:15 +00:00
observer_ptr Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
ObserverNodePath Refactored Observer/ObserverNodePath and DatabasePager to improve their robustness. 2010-05-14 12:24:13 +00:00
OccluderNode Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
OcclusionQueryNode Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
OperationThread 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
PagedLOD From Ulrich Hertlein, "Attached is a patch that introduces 'static_cast<unsigned int>' on some instances where 2013-05-14 16:12:21 +00:00
PatchParameter Introduced new osg::PatchParameter StateAttribute class to wrap up glPatchParameter associated state. 2013-06-11 10:52:37 +00:00
Plane Removed OSG_USE_BOUND and associated osg::Bound adapter class to avoid problems with BoundingBox::expandBy/expandByRadius() implementation choosing a null BoundingBox from 2014-06-02 16:20:39 +00:00
Point Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
PointSprite Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
PolygonMode Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
PolygonOffset Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
PolygonStipple Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Polytope Removed OSG_USE_BOUND and associated osg::Bound adapter class to avoid problems with BoundingBox::expandBy/expandByRadius() implementation choosing a null BoundingBox from 2014-06-02 16:20:39 +00:00
PositionAttitudeTransform Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
PrimitiveRestartIndex From Aurelien Albert, Added support for glPrimitiveRestartIndex. 2013-06-28 13:43:46 +00:00
PrimitiveSet Added inital cut of PrimitiveSetSet wrappers to scripting 2014-02-13 11:01:36 +00:00
Program From Aurelien Albert, "Recently I had to integrate a client OpenGL library with OSG. For textures and other StateAttribute I've done that by subclassing osg::StateAttribute and this works well. 2013-07-02 10:32:53 +00:00
Projection Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
ProxyNode From Magnus Kessler, typo and documentation fixes 2012-03-29 15:08:15 +00:00
Quat Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
ref_ptr Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Referenced Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
RenderInfo Added osg::RenderInfo::pushRenderBin()/popRenderBin() and RenderInfo::getRenderBinStack() and getCameraStack() access methods for getting access to the current RenderBin/RenderStage. 2013-08-01 07:19:45 +00:00
SampleMaski From Lukasz Izdebski,"added support for gl_SampleMaski." 2013-02-13 16:29:03 +00:00
Scissor Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
ScriptEngine 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
Sequence Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
ShadeModel Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Shader From Ulrich Hertlein, "Attached is a patch that introduces 'static_cast<unsigned int>' on some instances where 2013-05-14 16:12:21 +00:00
ShaderAttribute Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
ShaderComposer Added State::releaseGLObjects() and ShaderComposer::releaseGLObjects() to avoid problems with cleanup of graphics context 2013-10-21 16:35:12 +00:00
ShadowVolumeOccluder Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Shape Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
ShapeDrawable 2014-05-14 10:19:43 +00:00
State Added numTextureUnits parameter to the osg::State::resetVertexAttributeAlias(bool, unit) method, and set the default to 8. 2014-11-24 14:01:05 +00:00
StateAttribute Added VertexAttribDivisor class to wrap up glVertexAttribDivisor function 2014-11-24 14:54:39 +00:00
StateAttributeCallback 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
StateSet Changed StateSet::ParentList from vector<Object*> to vector<Node*> to reflect that Drawable is now a Node. 2014-08-25 13:43:11 +00:00
Stats Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Stencil 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
StencilTwoSided Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Switch Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
TemplatePrimitiveFunctor Fixed warnings 2009-01-07 10:32:59 +00:00
TexEnv Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
TexEnvCombine Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
TexEnvFilter Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
TexGen Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
TexGenNode Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
TexMat Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Texture From Claus Steuer, "XCode 6, IOs 8.1 SDK Compile fix : There are some undefined texture formats when compiling osg for IOs 8.1 with XCode 6 and OpenGLES2 enabled." 2014-11-20 17:37:52 +00:00
Texture1D Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Texture2D Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Texture2DArray Added a getModeUsage() method that prevents any mode being automatically associated with these Texture types that are only usable using non fixed function pipeline. 2014-01-24 12:01:37 +00:00
Texture2DMultisample From Sebastian Messerschmidt, "Attached you find a change adding a getNumSamples() function to retrieve the value set via setNumSamples." 2014-11-21 10:44:01 +00:00
Texture3D From Magnus Kessler, typo and documentation fixes 2012-03-29 15:08:15 +00:00
TextureBuffer From David Callu, warning fixes and removal of spaces at end of lines. 2013-06-28 12:00:43 +00:00
TextureCubeMap Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
TextureRectangle Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Timer Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
TransferFunction Added support for vector and map containers in osgDB::Serailizer's and lua plugin. 2014-02-26 08:26:51 +00:00
Transform Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
TriangleFunctor Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
TriangleIndexFunctor Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Types Centralized the calling of #include <stdint.h> and VS fallback into include/osg/Types header 2014-07-21 16:36:47 +00:00
Uniform From Ulrich Hertlein, "Attached is a patch that introduces 'static_cast<unsigned int>' on some instances where 2013-05-14 16:12:21 +00:00
UserDataContainer Added support for vector and map containers in osgDB::Serailizer's and lua plugin. 2014-02-26 08:26:51 +00:00
ValueObject Added support for serailizing and scripting BoundingBox and BoundingSphere objects 2014-02-10 16:44:13 +00:00
Vec2 Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Vec2b Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Vec2d Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Vec2f Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Vec2i From Art Tevs, int and uint Vec classes 2013-06-03 11:38:20 +00:00
Vec2s Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Vec2ub From David Callu, "Added Vec3ub, Vec3us, Vec4us, Vec2ub and Vec2us classes" 2013-06-27 17:37:03 +00:00
Vec2ui From Art Tevs, int and uint Vec classes 2013-06-03 11:38:20 +00:00
Vec2us From David Callu, "Added Vec3ub, Vec3us, Vec4us, Vec2ub and Vec2us classes" 2013-06-27 17:37:03 +00:00
Vec3 Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Vec3b Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Vec3d Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Vec3f Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Vec3i From Art Tevs, int and uint Vec classes 2013-06-03 11:38:20 +00:00
Vec3s Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Vec3ub From David Callu, "Added Vec3ub, Vec3us, Vec4us, Vec2ub and Vec2us classes" 2013-06-27 17:37:03 +00:00
Vec3ui From Art Tevs, int and uint Vec classes 2013-06-03 11:38:20 +00:00
Vec3us From David Callu, "Added Vec3ub, Vec3us, Vec4us, Vec2ub and Vec2us classes" 2013-06-27 17:37:03 +00:00
Vec4 Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Vec4b Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Vec4d Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Vec4f Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Vec4i From Art Tevs, int and uint Vec classes 2013-06-03 11:38:20 +00:00
Vec4s Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Vec4ub Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Vec4ui From Art Tevs, int and uint Vec classes 2013-06-03 11:38:20 +00:00
Vec4us From David Callu, "Added Vec3ub, Vec3us, Vec4us, Vec2ub and Vec2us classes" 2013-06-27 17:37:03 +00:00
Version Added StateSet::RenderBinMode::PROTECTED_RENDERBIN_DETAILS and OVERRIDE_PROTECTED_RENDERBIN_DETAILS options. 2014-07-30 12:47:16 +00:00
VertexAttribDivisor Added VertexAttribDivisor class to wrap up glVertexAttribDivisor function 2014-11-24 14:54:39 +00:00
VertexProgram Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
View Ran script to remove trailing spaces and tabs 2012-03-21 17:36:20 +00:00
Viewport Preperation for adding stereo support direclty into osgViewer. 2013-04-15 14:21:32 +00:00