I am experiencing a problem in my attempt to obtain the positions of the vertices of an actor while i procedurally move a joint.
I use the method of the manual for exploring the geometry of the actor (that is “geomNodeCollection = model.findAllMatches(’**/+GeomNode’)” and so on). I obtain the vertices of the actor; then i move a joint - and the model correctly animate on the screen - ; but when i start to explore again the geometry of the actor i obtain the same vertices than before… How can it be? Is there something wrong in my approach?
Consider i am quite new in Panda3d
my guess would be that panda only transforms the vertices right before sending it the model to the gpu. the rest of the time it remains in the base-pose.
you could manually multiplying calculate the transforms but i doubt that is what you want to do.
if you can describe what you want to do (in general) then we might be able to point you to an easier way.
for example if you just want to attach an object to a bone, or getting a position relative to a bone during animation,then there are easier ways to do so.
also, welcome to panda3d
Thank you for your answer. I am trying to “translate” certain 3d models obatined from real world (by a triangulation system with a camera and a projector) in bones dynamics… that is in bvh files… So I must confront original 3d models obtained from triangolation and basic models with bones: that’s why i need to obtain the vertices rotated and translated by bones…
I don’t think it wuold be very simple manually obtaining the tranformed vertices… Is there no way to intercept the tranformed vertices panda send to GPU?
another question: i have also tried to change the position and the scale of the model loaded; i still obtain the same vertices whichever scale and position i set… why?
Transforms (movement, rotation, scale, shear) don’t change the verts (it’s some kind of Matrix magic). But you can call flattenLight to bake that into verts.
wow… it works fine!!! it also works for actors even if i fear several problem may occour… THANK YOU!!!
But still there is something i can’t understand… where does Panda3d usually stores the transformations of a model due to animation or procedurally rotated or stretched bones???
To obtain the animatede vertices we just have to use
The result is a new geomVertexData which does contain the animated vertices…