> Hello Gerrit, Volker, > > On 08/14/2012 08:34 PM, Gerrit Voß wrote: > > small comment, changes during local rendering should never be needed > > to get the clustering right. Usually they should not even be transmitted. > > Because, rendering locally on the master while clustering is optional, > > for example on our main cluster the application is started remotely, > > without anybody being even being logged into the master, so no > > rendering will happen in this setup. > > hmm, makes sense. During development I went back and forth a couple of > times about what to distribute and what not, but I kept running into problems > with keeping stuff local - may have been due to bugs in the app or in the > handling of local containers that are fixed now. > Anyway, I'm attaching an (untested) patch that creates the > {CPU,GPU}SkinningDataAttachment locally [1]. > If anyone feels adventurous and helpful: I'd appreciate if you'd give it a try :) > > Cheers, > Carsten > > [1] I needed to add cloneLocal() functions to the GeoProperties, which seems > like a useful addition independent of the rest of the patch?
Hi Carsten, I added Your patch and found no difference in the cluster behavior. The render server seems to had problems with the update. So at first I noticed that the Skeleton::JointsChangedFieldMask is the only change (in the servers). So to have some update I added that fieldmask test. Now, even if setDataValid(false) is called and the renderEnter method updates the shader, the skinning was not updated in the servers. I had to add a commitChanges: (in renderEnter) ... if(data->getDataValid() == false) { ShaderProgram *vp = shCode->getVertexShader(0); OSG_ASSERT(vp != NULL); vp->updateUniformVariable( "matJoints", (*skel->getMFJointMatrices())); vp->updateUniformVariable( "matBindShape", skinGeo->getBindShapeMatrix()); data->setDataValid(true); commitChanges(); } ... Now the servers update the skin mesh. Cheers, Volker PS: in OSGSkeletonOgreJoint.cpp I found in the changed method: if(_sfSkeleton.getValue() != NULL) _sfSkeleton.getValue()->editSFJointsChanged(); this may be the reason why Skeleton::JointsChangedFieldMask is important? ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Opensg-users mailing list Opensg-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensg-users