Commit Graph

208 Commits

Author SHA1 Message Date
Robert Osfield
8837d667f0 Made the handling of types more consistent 2004-07-26 19:40:02 +00:00
Robert Osfield
215e65a42d Made doc comments more relevant. 2004-07-23 04:03:57 +00:00
Robert Osfield
0d4fe1eba4 Changed _valueAnisotropy from bool to float. 2004-07-22 07:41:17 +00:00
Robert Osfield
3bca9ec9cf Added SceneView::Options for SceneView::setDefaults(options) and
OsgCameraGroup::setRealizeSceneViewOptions(options) to allow better control
of what functionality is compiled in by default.
2004-07-20 10:17:22 +00:00
Robert Osfield
aa833acfd3 Added support for releasing GLObjects, and renamed DisplayListVisitor the
GLObjectVisitor to better fit its function, and added support for releasing
objects as well as compiling them.
2004-07-20 05:37:59 +00:00
Robert Osfield
6fd4677868 Added OPTIMIZER_TEXTURE_SETTINGS pass to Optimizer, which enables
unref image data after apply, client storage hint.
2004-07-12 13:20:18 +00:00
Robert Osfield
8a44435e4d Made the local storage of a StateAttribute* be a ref_ptr<> 2004-07-08 22:11:42 +00:00
Robert Osfield
06aa06d686 Added support for setting texture units in the new TexGenNode. 2004-06-17 14:02:15 +00:00
Robert Osfield
78d075eb24 Added new TexGenNode class for positioning tex gens. 2004-06-14 19:11:04 +00:00
Robert Osfield
bfd1286b25 Add clamping to 0..1 bounds for each of the r,g,b,a components in
the CubeMapGenerator::set_pixel() method.
2004-06-04 11:35:13 +00:00
Robert Osfield
2cf45b50c9 From Terry Welsh, added checks to incoming Geometry for existance of normals,
and if they are present use these to compute the tanget and binormals
vectors perpendicular to existing normals.
2004-06-04 08:24:13 +00:00
Robert Osfield
8edafc3b22 Updated clampProjectionMatrix methods 2004-05-25 20:35:14 +00:00
Robert Osfield
6223c11570 Made the generation of QUADS for strip with the length of 4 an option. 2004-05-02 15:43:55 +00:00
Robert Osfield
5836d60fbd Added osg::CullSettings class as a way of collecting all the various
settings related to the cull traversal in one place, so we can keep APIs
for settings these values more consistent.
2004-04-30 15:35:31 +00:00
Robert Osfield
5d79eb1c9d Added support for fine grained computation of the near plane, by taking
into account individual primitives culled against the view frustum.

Added better support for computing the near far for billboards.
2004-04-29 22:21:06 +00:00
Robert Osfield
678c456fc8 Made s/getBackgroundColor() deprecated, and add in new s/getClearColor() to
replace it.
2004-04-27 19:09:58 +00:00
Robert Osfield
91516305d9 Added support for protecting points from being simplified.
Added back in support for generation of skirts in osgTerrain::DataSet.
2004-04-22 13:36:30 +00:00
Robert Osfield
061244056d Added support for using the error metric to guide the simplficiation process 2004-04-19 23:08:30 +00:00
Robert Osfield
a1caa14a61 Added osgsimplifier example. 2004-04-18 16:15:49 +00:00
Robert Osfield
c80de01fd7 Further work on the new osgUtil::Simplifier. 2004-04-12 21:29:31 +00:00
Robert Osfield
51c8655630 Added beginning of new osgUtil::Simplifier 2004-04-08 11:27:01 +00:00
Robert Osfield
b73d3c3e7f Fixed typo in inline docs on the default value of the clear stencil value 2004-02-19 10:10:25 +00:00
Robert Osfield
5fa64ba416 Made getViewport(...) const. 2004-02-10 12:36:17 +00:00
Robert Osfield
b4774099d6 Fixed the clampProjectionMatrix method so it doesn't modify the input
znar and zfar, by avoid the use of float/double&.
2004-01-29 20:14:20 +00:00
Robert Osfield
39d7afaed2 Added support for CullVisitor::clampProjectionMatrixCallback 2004-01-28 10:49:23 +00:00
Robert Osfield
d4cfaae406 Fixed typo's of ImpostorSprite 2004-01-13 09:47:50 +00:00
Robert Osfield
f230f5a132 Added support into osgProducer::Viewer for flushing and compiling GL objects
via a Producer post swap callback.
2004-01-05 13:40:36 +00:00
Robert Osfield
401c3ec45d From Geof Michel, addition of TESSELATE_GEOMETRY pass. 2003-12-27 22:17:25 +00:00
Robert Osfield
fdd5a72115 Added extra clampProjectionMatrix methods to handle both Matrixd and Matrixf
pathways.
2003-12-21 13:11:36 +00:00
Robert Osfield
1158e4605d Added support for updating the SceneView projection matrix from the values
of near and far computed during the cull traversal.
2003-12-15 23:23:45 +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
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
75174c1be1 Changed the minium tri strip length to 2 rather than 0. 2003-12-05 22:42:02 +00:00
Robert Osfield
3f14b9a653 Added code for combining adjacent static MatrixTransforms 2003-12-05 14:39:32 +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
091151e4ce Warning fix from Romano 2003-11-26 16:43:28 +00:00
Robert Osfield
845adb8745 Reorganised posstion of getViewMatrix*() methods. 2003-11-25 10:55:37 +00:00
Robert Osfield
bddd49c86a Changed the credit from NVidia's NvTriStrip to Tanguy Faure's traingulation code. 2003-11-14 09:25:17 +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
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
243b288d87 Made the calling of drawable update callbacks always happen when a geode
is traversed in the update traversal.
2003-09-24 18:53:47 +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
c342b29a04 Warning fixes for Win32. 2003-09-16 19:56:19 +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
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