Hello Michael,

Michael Babcock wrote:
> I have a custom Geometry subclass where I have overridden adjustVolume. 
> If I call invalidateVolume on this geometry my version will be called on 
> render, but only in local mode. In a cluster mode the invalidateVolume 
> on the client never causes adjustVolume to be called on client or server.

adjustVolume is only called if the volume is thought to be invalid and 
then updateVolume is called. I wonder if the volume is simply considered 
up-to-date on the servers.
In the cluster setup, does your client render or do only the servers 
render? If it does not render it is possible that nothing calls 
updateVolume on the client side, can you try calling updateVolume() on 
the root of your scene before syncing over the network?
I'm not sure why the servers don't notice that the volume they get is 
not valid though...

> I noticed that Node::changed() calls invalidateVolume for certain fields 
> such as travMask, so I tried to trigger it by wrapping my invalideVolume 
> like so:
> 
>      beginEditCP(_parents[0], Node::TravMaskFieldMask);
>      invalidateVolume();
>      endEditCP(_parents[0], Node::TravMaskFieldMask);
> 
> However this had no effect.

no, calling invalidate volume from your core should be enough. It will 
mark all parent volumes as invalid. However, this information does not 
seem to propagate over the cluster for some reason.

        Cheers,
                Carsten

------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
Opensg-users mailing list
Opensg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to