Robert Osfield
370deba546
<iterator>, <stdlib.h> and <ctype.h> includes required for QNX compiler
2009-11-17 14:06:07 +00:00
Robert Osfield
a232770161
From Colin MacDonald,"The Optimizer Merge Geometry visitor is always merging geometries,
...
even if they have had DataVariance DYNAMIC explicitly specified. Then
when an application attempts to dynamically update the geometry in the
frame loop the primitive sets and data arrays are no longer as
expected, leading to display and/or memory corruption.
Attached is a simple fix. "
Note from Robert Osfield, tweaked Colin's changes to that it use != DYNAMIC as the the test rather than == STATIC.
2009-07-16 11:06:31 +00:00
Robert Osfield
009ddf1b1e
From Glenn Waldron, "Attached is a patch for osgUtil::Optimizer. If you run the SpatializeGroupsVisitor on a scene graph containing Geodes, StateSets attached to Geodes can be lost.
...
The problem is in SpatializeGroupsVisitor::divide(osg::Geode*, unsigned int) where the code creates a new Group and divides up the input Geode into one Geode per Drawable.
I fixed the problem by assigning the Geode's stateset to the new parent group.
To replicate the bug, see attached osg/dds files:
osgviewer b.osg -- model renders correctly
set OSG_OPTIMIZER="SPATIALIZE_GROUPS"
osgviewer b.osg -- textures are missing."
2009-04-08 10:48:22 +00:00
Robert Osfield
8194246ba3
From Konstantin Sinitsyn, "At this moment, I just introducing to OSG. When I reviewing optimizer code, I find a mistake in Optimizer::RemoveLoadedProxyNodesVisitor, as it seems. This optimizer removes proxy nodes that fully loaded and in some cases attach their childs to parrents directly (without creating of group). I dont understand how this works, because if proxy node doesn't have any attributes such as name, description, node mask and any callbacks, then new group does not created to hold proxy node childs. And code below trying to attach their children to all parents but seems like only first child beeing attached to all parents correctly.
...
"
2009-03-12 17:47:50 +00:00
Robert Osfield
d040b9f9d6
From Lionel Lagarde, "the attachment contains a correction of the Optimizer::MergeGeometryVisitor.
...
When 2 geometries are merged, the primitive sets of the second geometry
are copied to the first geometry.
The primitive sets were copied with a std::insert into the first geometry
primitive set vector. It doesn't work when the geometry is using VBOs (because
the element buffer object of the primitive set is not updated).
The correction replaces
lhs.getPrimitiveSetList().insert( lhs.getPrimitiveSetList().end(),
rhs.getPrimitiveSetList().begin(),
rhs.getPrimitiveSetList().end() );
by
for( primItr=rhs.getPrimitiveSetList().begin();
primItr!=rhs.getPrimitiveSetList().end();
++primItr )
{
lhs.addPrimitiveSet(primItr->get());
}"
2009-03-11 12:08:24 +00:00
Robert Osfield
0669107287
From Roland Smeenk, "While working on the Collada plugin I noticed that all geometry created by the dae reader result in slow path geometry.
...
Because there already exists the option to convert slow path geometry to the fast path by computing an internal fast path alternative, I added a new optimizer option that automatically does this. To check the results I also made some changes to the statistics gathering and rendering.
Somewhat unrelated, but also part of the optimizer I disabled removal of CameraView nodes during RemoveRedundantNodes optimization.
As discussed on the ML, CameraViews were removed from the scenegraph. This solves that issue.
Summary:
-Geometry::areFastPathsUsed now also looks at internalOptimizedGeometry
-Added Optimize option to make all slow path geometry compute their internal fast path alternative
-Added fast geometry counter to the statistics
-Disabled removel of CameraViews in optimizer
"
2009-03-10 14:15:59 +00:00
Robert Osfield
4e30cafbd5
Merged from OSG-2.8 branch, fix to handle of StateSet attached to transforms being removed by the FlattentStaticTransformVisitor
2009-02-07 11:30:15 +00:00
Robert Osfield
de17dad958
Quitened down debug message
2008-12-18 12:25:51 +00:00
Robert Osfield
1b55a56731
Removed #if 0'd out reference to osgDB
2008-12-10 15:01:49 +00:00
Robert Osfield
017b4315bc
From Joakim Simmonsson, fix for handling of billboards in FLATTEN_STATIC_TRANSFORMS_DUPLICATING_SHARED_SUBGRAPHS
2008-11-25 14:31:19 +00:00
Robert Osfield
f81ff952a2
merged 2.6 branch changes back into trunk using : svn merge -r 8699:8706 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/branches/OpenSceneGraph-2.6 .
2008-08-03 16:57:09 +00:00
Robert Osfield
74a1b7881e
Disabled the setting of Texture::setUnrefImageOnApply(true) when the imagery is
...
an ImageStream.
2008-07-22 10:13:57 +00:00
Robert Osfield
5e0169f664
Changed the Optimizer::StateVisitor so that it can individually decide whether
...
to optimize away duplicate state with dynamic, static and unspecified DataVarience. By default
the code now optimizes away duplicate state with either static and unspecied state, previously
it was just handling static state.
2008-06-29 12:22:50 +00:00
Robert Osfield
be185cb3af
From Terry Welsh, new flatten static transforms visitor that duplicates subgraphs that are shared beneath differnt static transforms
...
From Robert Osfield, made a range of changes to Terry's visitor integrating it into osgUtil::Optimizer and
changing the code to use a style more like the rest of the OSG.
2008-06-20 13:16:35 +00:00
Robert Osfield
6691824244
Added subdivision of Goedes
2008-04-13 19:31:09 +00:00
Robert Osfield
b4245023a9
Fixed LessGeode operator.
2008-03-25 12:26:43 +00:00
Robert Osfield
f4afa427a7
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
Robert Osfield
1b1c5bbdd1
Added support for new double Vec*Array classes in various functors.
2007-12-04 14:46:46 +00:00
Robert Osfield
4c3a13c3a1
From Andy Skinner, fixes for avoiding warnings about mixing c and c++ versions of c libs.
2007-08-05 14:51:56 +00:00
Robert Osfield
07411f3246
Introduced new osg::Object::DataVariance type of UNSPECIFIED, and changed the deafult
...
values of DataVariance to UNSPECIFIED to all types.
2007-02-14 13:18:58 +00:00
Robert Osfield
89c99a88fa
Added computeDataVariance method into osg::Object and implementations in Drawable and StateSet,
...
and calling of osgUtil::StaticObjectDetectionVisitor in osgViewer::Viewer
2007-02-14 11:24:42 +00:00
Robert Osfield
a3832d9b78
Removed debug message
2007-02-09 12:08:46 +00:00
Robert Osfield
47622e6134
Fixed the FlattenStaticTransform visitor so that it excludes subgraphs that
...
contain PagedLOD nodes
2007-02-08 15:47:05 +00:00
Robert Osfield
c52207b637
Added new Transform::ReferenceType enum ABSOLUTE_RF_INHERIT_VIEWPOINT to support
...
internal RTT cameras that wish to use the main cameras view/eye point for LOD and other
distance based tests.
2007-02-07 16:32:14 +00:00
Robert Osfield
69da91620f
Convert GraphicsThread/GraphicsOperation to more generic OperationsThread/Operation.
...
This paves the way to running cull traversals in seperate threads.
Updated wrappers
2007-02-02 22:30:36 +00:00
Robert Osfield
fd0ea388c2
Began work on providing support for threading camera cull traversals in parallel with
...
the previous frames draw traversal. Changes range from osg::State, through osgUtil::RenderBin, through to osgViewer
2007-01-29 22:44:29 +00:00
Robert Osfield
462803fd57
From Paul Martz, speeling fixes for Tessellator/Tessellation.
2007-01-08 21:29:49 +00:00
Robert Osfield
02bda82b55
From Paul Martz and Robert Osfield, renamed include/osgUtil/Tesselator and associated classes/references to Tessellator etc.
2007-01-08 11:23:52 +00:00
Robert Osfield
3613e66e82
Added extra checks to RemoveRedendentVisitor to catch Groups that may
...
only have one child, but also have StateSet's etc and thefore not suitable
for removal.
2006-11-24 21:19:11 +00:00
Robert Osfield
b5bb541cca
From Stephan Huber, Follows is required to prevent unidented cloning of shared arrays :
...
"I added some calls to isOperationPermissibleForObject() so I can permit the flattten-pass with my specialized objects in my own code."
2006-11-14 12:49:53 +00:00
Robert Osfield
b4135398da
Added handling of geometry indices offset when merging geometries with indices
2006-10-30 11:00:25 +00:00
Robert Osfield
490fc96ea6
From John Aughey, "Attached is the Optimizer.cpp file that has the fix to duplicate vertex and normal arrays if there is more than one reference to the data. This fixes the problem where the transforms are applied to the same vertex array multiple times if that vertex array is re-used within the model. "
2006-10-03 20:20:23 +00:00
Robert Osfield
63907dbbaf
From Bryan Thrall, fix to Optimizer::MergeGeometryVisitor so that it checks
...
the permissable operation status on Drawables.
2006-09-08 20:08:01 +00:00
Robert Osfield
d92fdafd53
Fixed TextureAtlasVisitor bug where repeating textures were incorrectly assigned as non repeating.
2006-08-31 15:39:23 +00:00
Robert Osfield
102215afb5
To TextureAtlasBuilder add copying of border pixels into margins to help improve quality of lower mipmap levels.
2006-08-30 16:33:30 +00:00
Robert Osfield
e789ae6f54
In TextureAtlasVisitor code added catch for textures that have some geometry with texcoords within 0 to 1.0, but
...
others others out of the 0 to 1 range, these textures are automatically rejected from consideration for adding to a texture atlas.
2006-08-30 09:32:05 +00:00
Robert Osfield
25bf4a6626
To the TextureAtlasBuilder added detection of instance where a single drawable
...
has multiple textures on the same texture unit inherited down to it from above.
2006-08-29 15:05:05 +00:00
Robert Osfield
66f40a1670
Added env var docs
2006-08-28 19:05:40 +00:00
Robert Osfield
19f3d975dd
Futher work on TextureAtlasBuilder/Visitor, now functioning enough to deploy on real models.
2006-08-28 15:46:02 +00:00
Robert Osfield
ee7f3fa375
Further work on TextureAlasBuilder and TextureAtlasVisitor.
2006-08-28 10:46:39 +00:00
Robert Osfield
9f6be131a4
Further work of TextureAtlasBuilder
2006-08-26 21:38:22 +00:00
Robert Osfield
f86c824275
Further work on new TextureAtlasBuilder.
2006-08-25 16:30:23 +00:00
Robert Osfield
1f8c4874f6
Checking in first cut of new osgUtil::Optimizer::TextureAtlasBuilder class
...
for building texture atlas for sets of images or textures.
2006-08-25 15:53:16 +00:00
Robert Osfield
f1c2694c17
Updated copyright years.
2006-07-18 15:21:48 +00:00
Robert Osfield
9790d15f30
Reduced the verbosity of debug info.
2006-07-18 13:04:57 +00:00
Robert Osfield
f2d50d943b
Updated wrappers
2006-07-18 11:42:27 +00:00
Robert Osfield
a74801a0ee
Added Optimizer::FlattenBillboardsVisitor.
2006-07-18 11:03:46 +00:00
Robert Osfield
524417f981
Removed debug info
2006-07-14 11:29:41 +00:00
Robert Osfield
e835ea5328
Speeded up merge geometry
2006-07-14 11:04:24 +00:00
Robert Osfield
47c7c43c64
Optimized the MERGE_GEODES pass
2006-07-13 20:42:10 +00:00