scrawl
7e2436aba9
Change the order of optimizations to allow for the possibility of merging Geometries that have just become siblings after the removal of redundant nodes
2017-02-24 01:09:09 +01:00
scrawl
e0f7d3241a
Fix MergeGeometryVisitor to work with a Group instead of Geode
2017-02-24 01:05:57 +01:00
scrawl
a918306a99
Use asDrawable()/asNode() over dynamic_cast in the Optimizer
2017-02-24 01:00:49 +01:00
scrawl
f13fbff251
Remove CheckGeometryVisitor which was a no-op
2017-01-20 23:02:15 +01:00
scrawl
4a05caf4f7
MakeFastGeometryVisitor: fix handling of Geometries that are directly in the scene graph not attached to a Geode
2017-01-20 23:01:04 +01:00
scrawl
833f37ea57
StateVisitor: remove redundant code for Geode handling
2017-01-20 22:49:17 +01:00
scrawl
f229b19496
TessellateVisitor: fix handling of Geometries that are directly in the scene graph not attached to a Geode
2017-01-20 22:47:51 +01:00
scrawl
41cbf9a45e
FlattenStaticTransformsVisitor: fix handling of Drawables that are directly in the scene graph not attached to a Geode
2017-01-20 22:43:58 +01:00
scrawl
ff1a9a195a
StaticObjectDetectionVisitor: make use of apply(Drawable) visitor function
2017-01-20 21:48:45 +01:00
scrawl
764b2f60c6
TextureAtlasVisitor: fix handling of Drawables that are directly in the scene graph not attached to a Geode
2017-01-20 21:47:21 +01:00
scrawl
dc2689f779
TextureVisitor: remove redundant code for Geode handling
2017-01-20 21:47:13 +01:00
scrawl
4457df9a8a
RemoveEmptyNodesVisitor: add missing isOperationPermissible check
2017-01-20 21:46:46 +01:00
scrawl
7611f95078
RemoveEmptyNodesVisitor: remove redundant code for Geode handling
2017-01-20 21:46:03 +01:00
Robert Osfield
fd0af1d9df
Added Optimizer::BufferObjectVisitor and associated BUFFER_OBJECT_SETTINGS value to enable it via the OSG_OPTIMZIER env var.
...
The BufferObjectVisitor enbales vertex buffer objects usage on Drawable in the scene graph.
2016-07-11 09:52:07 +01:00
Robert Osfield
f47be656b4
Cleaned up pointer usage
2016-06-24 10:02:18 +01:00
Robert Osfield
0e21058d10
Added check against null
2016-06-23 17:58:35 +01:00
Alberto Luaces
260cbab518
Typo fixes
2016-05-30 12:30:05 +01:00
Robert Osfield
ff01d9c663
Fixed shadows warnings
2016-05-23 10:52:55 +01:00
Robert Osfield
2208303496
Warning fixes for Clang-3.6
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@15016 16af8721-9629-0410-8352-f15c8da7e697
2015-07-23 11:11:58 +00:00
Robert Osfield
ba9dfb2ff6
From Albert Luaces, typo fixes.
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14883 16af8721-9629-0410-8352-f15c8da7e697
2015-06-01 13:40:20 +00:00
Robert Osfield
6cff8650f2
Cleaned up handling of Drawables so it utilizes the Node inheritance properly.
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14822 16af8721-9629-0410-8352-f15c8da7e697
2015-04-07 15:49:06 +00:00
Robert Osfield
5346e7772a
Restructed the checks in the CollectLowestTransformsVisitor::removeTransforms() to avoid benign case being flagged as warning.
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14753 16af8721-9629-0410-8352-f15c8da7e697
2015-03-03 12:56:09 +00:00
Robert Osfield
839dbb1bc1
Added catch for NULL Transform pointers getting into the _transformMap.
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14388 16af8721-9629-0410-8352-f15c8da7e697
2014-07-29 15:47:55 +00:00
Robert Osfield
7295258d71
Merged fix to merge geometries.
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14265 16af8721-9629-0410-8352-f15c8da7e697
2014-06-24 11:24:13 +00:00
Robert Osfield
c6ab14018a
Fixed check against totaly number of vertices
...
git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14262 16af8721-9629-0410-8352-f15c8da7e697
2014-06-16 16:16:10 +00:00
Robert Osfield
333a16a88d
Reverted change of Node::ParentList from being a vector<Node*> back to a vector<Group*>
2014-06-03 09:52:55 +00:00
Robert Osfield
3dde165f14
Refactor osg::Geode to subclass from osg::Group and reuse the NodeList children container
2014-06-03 09:23:24 +00:00
Robert Osfield
74f91037a7
Further work on Bound class/Node::getBound() and Drawable::getBound() and usage in OSG codebase
2014-05-14 16:01:40 +00:00
Robert Osfield
12a737ae02
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
...
to user code compile with minimal modifications to account for the new change to the Node ParentList.
2014-05-13 08:43:07 +00:00
Robert Osfield
092dd93be8
Removed deprecated usage of osg::Geometry::get*Binding()
2013-06-27 10:58:26 +00:00
Robert Osfield
ca2688b046
Convert usage to use const versions of containers
2013-06-24 11:03:59 +00:00
Robert Osfield
9c127c2bca
From Magnus Kessler, typo fixes to doxygen docs and comments
2013-06-19 12:32:40 +00:00
Robert Osfield
7d40c7258f
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.
...
New methods osg::Geometry::containsDeprecatedData() and osg::Geometry::fixDeprecatedData() provide a means for converting geometries that still use the array indices and BIND_PER_PRIMITIVE across to complient
versions.
Cleaned up the rest of the OSG where use of array indices and BIND_PER_PRIMITIVE were accessed or used.
2013-06-18 11:18:28 +00:00
Robert Osfield
8ed0780967
Added .get()'s to fix compilation when ref_ptr<> type conversion is disabled
2013-02-05 18:22:46 +00:00
Robert Osfield
d3e9b61f2b
From Pjotr Svetachov, "small bug which I have found in the
...
FlattenStaticTransformsDuplicatingSharedSubgraphsVisitor: the visitor
will replace part of the tree when visiting the nodes but it does not
update the current node path to reflect this. If you then have
multiple nested transform nodes it will usually crash and sometimes it
won't crash but the resulting mesh will miss some nodes."
2013-01-23 17:37:26 +00:00
Robert Osfield
9b08c37373
Added extra check against whether node needs to be traversed in update and event traversals to prevent osgPresentation::Timeout being classified as a node that can be removed.
2013-01-22 10:33:19 +00:00
Robert Osfield
fd4126dc59
Added Node::getName() and getUserDataContainer() to check to see if an node can be removed or not.
2012-11-09 21:23:42 +00:00
Robert Osfield
14a563dc9f
Ran script to remove trailing spaces and tabs
2012-03-21 17:36:20 +00:00
Robert Osfield
17ba6f0a24
From Guillaume Millet, "Please find a small fix to avoid crash of texture Atlas builder in case of textures with NULL image.
...
If an object is comming with texture and NULL image, the texture atlas builder crash when sorting textures according to texture height.
The fix is to skip textures with NULL image when inserting textures in the builder texture list.
"
2012-03-06 10:35:57 +00:00
Robert Osfield
33e7857af9
From Guillaume Millet, "When using the texture Atlas builder, it will convert from REPEAT to
...
CLAMP all textures using only texcoord between [-0.001 1.001] to give a
chance to create an Atlas.
If the atlas creation failed for other reason (texture size, only one
compatible texture, ...) the texture remain modified in CLAMP mode.
But if you use texcoords between [0.0 1.0] using CLAMP mode instead
REPEAT it is not safe because you will have a blend to the border color
at extremities.
If we want to have exactly the same rendering after changing mode from
REPEAT to CLAMP we should use the CLAMP_TO_EDGE mode instead of CLAMP to
avoid blending to border color at extremities.
Please find as attachment the proposed patch against latest svn version.
"
2012-02-28 12:03:48 +00:00
Robert Osfield
251827c994
From Mathias Froehlich, "In Optimizer.cpp a nodes update callback is checked twice and the cull
...
callback is checked never for the decision of a node being redundant.
The change replaces one of the update callback tests with a cull callback
test."
2012-02-06 13:45:20 +00:00
Robert Osfield
b2cf978ae3
Renamed YES and NO enums with more description names that don't overlap with iOS #define's
2010-12-06 10:35:02 +00:00
Robert Osfield
147fdd0430
From Sukender, "1. More handled cases in MergeGeometryVisitor
...
- Algorithm doesn't try to merge double and single precision arrays together
- Algorithm doesn't try to merge incompatible geometries (ex: one with "vertices + texoords", and another with only vertices)
2. Better TextureAtlasBuilder
Algorithm is still sub-optimal, but it now tries to fill more blanks, using "unused space in the current line".
(Don't know if I already submitted it, but I guess not)
One day, someone should try to find a good solution to this NP-problem... For instance : http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.140.200&rep=rep1&type=pdf
"
2010-11-05 17:04:08 +00:00
Robert Osfield
3b3e0d7cdd
Conversion of osg::notify to OSG_INFO etc.
2010-05-28 15:51:00 +00:00
Robert Osfield
7a44b43474
From Time Moore, "This submission implements 3 optimizations for meshes. INDEX_MESH turns DrawArrays style geometry into DrawElements, uniquifying the vertices in the process. This is useful for certain loaders, like ac3d, which just spit out DrawArrays. VERTEX_POSTTRANSFORM and VERTEX_PRETRANSFORM optimize mesh triangle and vertex order for the caches on a modern GPU, using Tom Forsyth's algorithm. I describe this and the big difference it makes (38% improvement on a very large mesh) in my blog,
...
http://shiny-dynamics.blogspot.com/2010/03/vertex-cache-optimization-for-osg.html ."
2010-03-11 18:15:20 +00:00
Robert Osfield
3b43810c66
From Paul Martz, "Regarding the osg-users thread "mergeGeodes crash", I'm submitting this for consideration as a fix for the problem with the FlattenStaticTransformsVisitor. It seems that the additional nested loop over the Transform's parent was not needed. I'm not sure why it was there, and if it really was unnecessary, then it has probably been resulting in many redundant Nodes for quite some time. Perhaps this fix will result in a cull- and draw-time performance boost."
...
From Robert Osfield, added copying of the UserData and Descriptions from the transform to the new group.
2010-02-26 15:40:19 +00:00
Robert Osfield
f17e401347
Convert NOTIFY to OSG_NOTIFY to avoid problems with polution of users apps with the NOTIFY macro
2010-02-10 12:44:59 +00:00
Robert Osfield
8d8037ee12
Converted osg::notify usage to NOTIFY
2010-02-09 18:24:37 +00:00
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