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