That makes sense. And I understand it for switches and transforms. Would I need 
to do deep_copy_nodes if it only contained geometry under LODs?

As for the arrays, we ran some tests and determined it better to flatten 
transforms out and do that for positioning some objects and then just put them 
under a single transform to move them around as a group. It was on the order of 
1000+ objects. I am going to modify that code to allow me to switch methods so 
we can retest it.

From: [email protected] 
[mailto:[email protected]] On Behalf Of Sebastian 
Messerschmidt
Sent: Wednesday, April 16, 2014 9:43 AM
To: OpenSceneGraph Users
Subject: Re: [osg-users] Understanding Node Clone Options

Hi Cary,

I usually use

the combination DEEP_COPY_NODES | DEEP_COPY_CALLBACKS.
It works in my use case, where I need to instance dynamic objects (such as 
cars) which need to keep their individual DoF, Switches and Animations.
I intentionally left out the flatten-static transform optimizations, but It 
might work if you visit your models transforms before optimizing and tag them 
as Dynamic. As far as I remember, nodes tagged DYNAMIC wont be touched by the 
Optimizer.

Regarding the vertices: With the options above the arrays will be shared I 
guess, which is exactly what I want, since I only want to duplicate the 
"structure" but not the geometry. If you clone the arrays each instance will 
have its own geometry, which might have a big impact on performance.

cheers
Sebastian
As our simulation runs we can add and remove models and many times the same 
model repeatedly. We only load the physical model once and then clone it for 
each instance we need. Each model can contain matrix transforms, switches, 
LODs, and update callbacks that all need to be unique. I am trying to limit how 
much we are actually cloning now since we don't necessarily have all of these 
things in every model. For example if we have a light pole that is use 100 
times, we don't even need to clone, we can just add the child directly to the 
scene under different matrix transforms. The problem is in understanding when I 
actually need to clone and what type of options I need.

I know I need to use the DEEP_COPY_ARRAYS when I need the actual vertices to be 
different, which does happen sometimes when I add a matrix that gets flattened 
on to the model. However, for switches, dynamic matrixTransforms, LODS, and 
callbacks, when do I use the different options? So far I have only gotten 
everything to work for those when I do a DEEP_COPY_NODES. Do I really need 
this, or would some subset of other options work?

I guess my main question is when are each of the various DEEP_COPY_ options 
needed?




_______________________________________________

osg-users mailing list

[email protected]<mailto:[email protected]>

http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to