Commit Graph

371 Commits

Author SHA1 Message Date
Robert Osfield
caaed0d8b8 Added test against MultiSwitch in Optimizer to prevent switch children
being removed.
2003-12-15 08:54:38 +00:00
Robert Osfield
9f0dc42efe Fixed flatten static transform 2003-12-12 17:23:03 +00:00
Robert Osfield
4bf9347fae Made progress reports use osg::notify(osg::INFO) instread of std::cout 2003-12-12 13:53:04 +00:00
Robert Osfield
995af47ab9 Fixed merging of geometry code. 2003-12-12 13:24:23 +00:00
Robert Osfield
7e012ccfc4 Renamed PermissableOptions to setPermissableOptimizations. 2003-12-11 23:33:27 +00:00
Robert Osfield
1881610a35 Added support for controlling what optimization operations can be applied
to specific nodes in the scene graph.  Typical use would be tagging a
node so that it can't be optimized away in say a flatten static transform
pass.  Added methods to Optimizer are:

        inline void setPermissableOptionsForObject(const osg::Object* object, unsigned int options)
        {
            _permissableOptionsMap[object] = options;
        }

        inline unsigned int getPermissableOptionsForObject(const osg::Object* object) const
        {
            PermissableOptionsMap::const_iterator itr = _permissableOptionsMap.find(object);
            if (itr!=_permissableOptionsMap.end()) return itr->second;
            else return 0xffffffff;
        }

        inline bool isOperationPermissableForObject(const osg::Object* object,unsigned int option) const
        {
            return (option & getPermissableOptionsForObject(object))!=0;
        }
2003-12-11 23:26:22 +00:00
Robert Osfield
5295d68fd3 Added _maximumNumberOfActiveOccluders variable to CollectOccludersVisitor(), to
limit the maximum number of occluders used in the cull traversal, default is
now 10.

Added set/getCollectOccluderVisitor() method into SceneView to allow control
of the the settings of the CollectOccluderVisitor.
2003-12-11 16:46:45 +00:00
Robert Osfield
eb57ab5cda Added support for using DrawArrays when indices are in ascending order, and
increment 1 at a time.
2003-12-10 10:49:16 +00:00
Robert Osfield
a25e14b42f Improvements to the TriStripVisitor such that it now groups 4 point tri strips
together as quads.
2003-12-09 22:29:56 +00:00
Robert Osfield
9780a7cbd6 Removed osg::Transform::ComputeTransformCallback from osg::Transform.
Updated various dependant files to reimplemt callbacks as Transform subclasses.
2003-12-09 14:07:44 +00:00
Robert Osfield
0034d026d2 Added commented out lines for setting orange blue anaglyphic stereo. The
analgyphic block really needs to have the color mask set up optionally, this
is something to configure in the future.
2003-12-08 19:25:08 +00:00
Robert Osfield
83bf813e58 Moved the responsibility for finding file to load on to the ReaderWriter plugins,
instead of osgDB::Registry where it original lay.  This has been done to allow
fileName strings to be encode data rather than just file names, such as one
requires when using PagedLOD along with plugins for doing dynamic tesselation.
2003-12-08 11:24:43 +00:00
Robert Osfield
3f14b9a653 Added code for combining adjacent static MatrixTransforms 2003-12-05 14:39:32 +00:00
Robert Osfield
9c2f01fd61 Added support for expanding index'd attributes from within
osgUtil:TriStripVisitor.
2003-12-04 17:14:06 +00:00
Robert Osfield
db66abd6d6 Implemented duplicate removal code into TriStripVisitor and added an
extra pass to doing tri stripping in the osgUtil::Optimzer.

Added validity checks into osg::TexEnvCombine to catch eronous enumarant values.

Improved the efficient of CullingSet's handling of new transforms.

Added a copy shared subgraphs and subdivision code into osgUtil::Optimizer.
2003-12-03 21:45:32 +00:00
Robert Osfield
3c9d1e0603 Added a spatializer into osgUtil to create a balanced quad/oct tree. 2003-12-01 10:28:23 +00:00
Robert Osfield
bc7622149d Updated to slideshow3D to support animation + pausing of animation.
Updated associated osg/osgUtil classes that provide animation pausing.
2003-11-03 23:13:31 +00:00
Robert Osfield
27dbfa9810 Added copying of reference to the main CullVisitor's DatabaseRequestHandler over
to the left/right eye CullVisitor to ensure that the database works in stereo.
2003-10-29 19:22:19 +00:00
Robert Osfield
594f25b5d1 Added SceneView::s/getDrawBufferValue(GLenum) to allow customization of what
glDrawBuffer() value is set on each frame.
2003-10-17 10:25:59 +00:00
Robert Osfield
4700b8902c Introduced new DisplaySettings::set/getDisplayType() and environemtal variables
to and command line arguments to set it.

Added support for using the DisplaySettings::getDisplayType() to detect use
of a Head Mounted Display when doing stereo so that the asymtric frustum can
be switched off.
2003-10-01 15:56:52 +00:00
Robert Osfield
7d69f8e193 Added getPerspective() method to Matrix* and SceneView 2003-09-29 13:14:34 +00:00
Robert Osfield
00d8ce7a48 Changed std::vector<>::at(i) array access usage to straight [i] to keep things compiling on gcc 2.x serious 2003-09-26 20:14:30 +00:00
Robert Osfield
7fb9f6be4b Added the beginnings of a new osgforest example.
Added support into osg::TriangleFunctor for specifying whether the vertices
being generates are temporary or not.
2003-09-25 21:54:33 +00:00
Robert Osfield
2812c50329 Improved the Geometry::verifyBinding() and computeCorrectBindingsAndArraySizes()
methods to check all atributes and to report warnigns when errors are detected.

Added a CheckGeomtryVisitor to osgUtil::Optimizer to detect eroneous Geometry
before rendering.
2003-09-24 15:54:22 +00:00
Robert Osfield
c91a2d3d3e Updated version numbers and ChangeLog for the release. 2003-09-16 21:25:25 +00:00
Robert Osfield
96388cee67 Added a check for the maximum index values of primitives, and then use this
to select whether to use UByte,UShort or UInt versions of osg::DrawElements.
2003-09-16 19:56:00 +00:00
Robert Osfield
69c4e87bb7 Added osg::State::popAllStateSets() method to pop all remain StateSet's off
the state stack, thus readying the state object to recieve a new frame.

Removed the state.reset() call in osgUtil::SceneView::cull() as this was
causing problems with stats producing inheritance of state when toggling
stats on.
2003-09-10 21:22:47 +00:00
Robert Osfield
b165fc9b4d Cleaned up handling of vertex arrays in osg::Geometry.
Added support for vertex attribute arrays in .osg and .ive.
2003-09-09 22:18:35 +00:00
Robert Osfield
131ebabaf5 Added call to handle_cull_callbacks_and_traverse(node) to
CullVisitor::apply(Geode&) to enable cull callbacks to function on geode's.
2003-09-08 08:44:05 +00:00
Robert Osfield
bd44cfcfd8 Added a Matrix::value_type typedef'd trait into osg::Matrix, defaulting its
value to float, and converted the internal code across to use value_type.  This
allows Matrix to be converted to use double's simply by change the definition
of value_type.  Added Matrix::glLoadlMatrix and Matrix::glMultMatrix() to
help encapsulate the changes between float and double matrix usage.

Updated code that uses Matrix so it doesn't assume float or double matrices.
2003-09-03 10:47:25 +00:00
Robert Osfield
763ee70f2f Commented out calc near/far debugging messages. 2003-09-02 20:06:20 +00:00
Robert Osfield
e530912744 Made Matrix a typedef to Matrixf, and converted the old Matrix to Matrixf, as
part of prep for supporting both Matrixf (float) and Matrixd (double).

Added osg::Matrixf::glLoadMatrix() and osg::Matrixf::glMultiMatrix() methods
and changed corresponding usage of glLoad/MultMatrixf() calls across to use these
methods. Again prep for support Matrixd.

Fixes for VisualStudio 6.0 compile.
2003-09-02 17:19:18 +00:00
Robert Osfield
7575f45800 Support for BumpMapping added by Marco Jez. 2003-09-01 21:53:53 +00:00
Robert Osfield
77c862d305 From Marco Jez, tangent space generator. 2003-08-27 14:13:12 +00:00
Robert Osfield
b5674a7dde Fixed CullVisitor::popProjectionMatrix() handling of othorgraphic near
and far values.
2003-08-27 00:39:44 +00:00
Robert Osfield
7b9de3ad91 From Marco Jez, improvement to the handling of coordinates frame in CubeMapGenerator. 2003-08-21 09:51:25 +00:00
Robert Osfield
1c3b2b2554 Standardised the culling flags between CullingSet and CullStack, and
made ENABLE_ALL_CULLING enable all culling including the near and far plane.
DEFAULT_CULLING is now used for the default as uses the same original
values as ENABLE_ALL_CULLING once did - view frustum culling with near and
far culling. SceneView now uses DEFAULT_CULLING.
2003-08-20 12:50:54 +00:00
Robert Osfield
8c65920c1f Fixes for Java build. 2003-08-18 09:24:17 +00:00
Robert Osfield
8a737dd2ca Added support for clampping the near and far values in othrographic projection.
Fixed the handling of anaglyphic/stereo state in SceneView::draw().
2003-08-08 00:36:51 +00:00
Robert Osfield
2ce08d8088 Warning fixes from Gideon May. 2003-07-23 11:45:37 +00:00
Robert Osfield
cc529aebe0 Bumped up version numbers in preperation for the 0.9.5 release. 2003-07-23 08:54:29 +00:00
Robert Osfield
ee30f2e30c Added support for osg::State::s/getInitialViewMatrix();
Added slideshow3D examples to the runexamples.bat.

Fixed DatabasePager to work with the latest OpenThreads.
2003-07-22 21:03:59 +00:00
Robert Osfield
23fc1900ce From Romano Jose Magacho da Silva, added osg:FragmentProgram.
From Robert, add .osg support for FragmentProgram.
2003-07-17 06:43:15 +00:00
Robert Osfield
2a142c096a Added setProjectionMatrix*(), setViewMatrix*() and get*() methods to osgUtil::SceneView. 2003-07-16 22:15:28 +00:00
Robert Osfield
82008d5ecd Updates to the flush rendering objects function calls to allow for
managment of amount of time available to do gl delete's.  This control is
required for constant frame rate applications.
2003-07-15 21:19:03 +00:00
Robert Osfield
1998bdef86 Moved osg::Statistics to osgUtil::Statistics and merged addition to it
fro Pavel Moloshtan.
2003-07-15 13:46:19 +00:00
Robert Osfield
deb26621c9 Changed the SceneView::setModelViewMatrix() methods across to being setViewMatrix().
The old RefMatrix methods for setModelViewMatrix() and setProjectMatrix() have
been removed to keep the API as minimal as possible.
2003-07-15 11:49:56 +00:00
Robert Osfield
1b9d7d458a Added support for texture object manager, which provides an automatic mechansim
for reusing deleted textures.
2003-07-14 14:42:10 +00:00
Robert Osfield
b5442ac835 Added support for the ARB_vertex_buffer_object into osg::Geometry. 2003-06-29 21:41:57 +00:00
Robert Osfield
3f23a430fb Fixed from Pavel for the stats in RenderBin.cpp 2003-06-25 10:39:11 +00:00