Hi,

I am trying to implement a dae animation loader for openGL in C++ (for 3d games). My model is rigged in maya and each joint has a nurb binded to it (so I animate the nurbs which in turn affect the joints and the vertices associated with each joint).

The problem is, when i used the skinning equation provided, I get (wildly) incorrect values for my vertices. So i think i might have mis-intepreted the equation in the collada documentation.

SUM OF [vertex * BSM * IBMi * JMi *JW] for no. of joints connected to vertex

-Should i take vertex as ( x, y, z, 1) meaning the outV i get will be in terms of (x,y,z,1) or as a 4x4 {{x,0,0,0}{0,y,0,0}{0,0,z,0}{0,0,0,1}}?

-BSM is from the <bind_shape_matrix> tag and is the same for all vertices right?

-IBMi is from a 16 by no. of joints array provided in the dae file right? eg. this line in my IBM array-for JMi, I multiplied the transformation matrices from the root to the current node for that frame. eg. if my heirachy is J1->split to J2 + J3->J4. the JMi for J4 should be J1*J3*J4? and for each J in the heirachy, I multiply the 4x4 matrices in order of translate* rotate_x * rotate_y *rotate_z, is this right or did i get the order wrong? Are there any other matices that I need to multiply by like pivot or something?Code :0.000000 0.999916 -0.012986 -1.767436 -0.000000 0.012986 0.999916 0.020117 1.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000

my rotate and translate values come from eg.

where (in this case) each value represents the translation in the Y axis for each key frame.Code :<float_array id="nurbsCircle9-translate-animation-outputY-array" count="8"> 0.000000 -0.080822 0.034746 -0.092027 -0.092027 -0.063086 -0.034146 0.001305</float_array>

-JW is single float value for each vertex taken from the weights (using <v> and <vcount> tags, im pretty sure i got this part right)

oh and, i intepreted the 16 value float arrays as:

Code :matrix[4][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16}};

Also, do i use the same formula to calculate the normals? And what do "split per-vertex Normals" and "bake transformations" do (they are options when i export in maya)?

Sorry, I'm quite new to collada and animation, so forgive me if the questions seem like common sense to you. Attached is my dae file for reference.

Thank you in advance for your time.