View Full Version : Determine movement on X/Y parallel to the camera

10 October 2005, 06:44 AM

I have a little big problem here and was wondering if someone could help out.
I am trying to determine the fastest moving vertixes within a scene. So far so good, not too hard. The only thing is I'd like to know how fast they're moving on X/Y space parallel to the camera, as opposed to XYZ worldspace.

that's what I have so far (worldspace):

global proc magVector( int $frame ){
string $sel[] = `ls -sl -fl`;
for($vtx in $sel){
currentTime $frame;
float $pos1[] = `pointPosition $vtx`;
currentTime ($frame + 1);
float $pos2[] = `pointPosition $vtx`;

float $dist[] = { ($pos2[0] - $pos1[0]), ($pos2[1] - $pos1[1]), ($pos2[2] - $pos1[2]) };
float $mag = mag($dist);

print ("Mag for " + $vtx + " at frame " + $f + " = " + $mag);

Any hints would be highly appreciated !



10 October 2005, 07:44 AM
Well, the thing to do is figure out where they are in screenspace, and store variables to determine where they are from frame to frame, and whatnot. I would dissect the Maya->Shake Locator script on highend3d, because it does calculations based on screenspace.

10 October 2005, 07:44 AM
tranform the points into camera space. that is, use the camera's matrix to multiply your points. havea look at vetorProduct node to get you started.

10 October 2005, 11:06 PM
thanks for your help guys, I am playing with the camera matrix right now. Will let you know what happening...



10 October 2005, 11:05 PM
I managed to use the matrix from the shake exporter script and it all works well now, thanks again !

CGTalk Moderation
10 October 2005, 11:05 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.