Advertisement Jump to content
Sign in to follow this  

PowerVR POD files data conversion problem

This topic is 2256 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts


I am importing various animations from PowerVR POD files. I need conversions from matrices to quaternions & stuff, as I want to implement animation blending and inter-frame interpolation.

My problem is that, when reading data exported from powervr as quaternions, translations and rotations, matrices converted from those TRS does not equal ( even by far ) the matrices read if I export the models with matrices.
Also, if I try to decompose the matrix into TRS, after extracting the scaling component, the resulting matrix is not a rotation matrix: columns are unit length, but rows aren't ( I have removed the translation component ).

For example, when I export as matrices ( model has about 100 bones, with about 250 frames ), the 11174 matrix is, COLUMN ORDERED:


but, when I export as TRS, the 11174 set of parameters are:

Trans = (-0.116999, -0.340356, -0.732254)
Scale = (0.418738, 0.982837, 0.725079)
Quat = (0.000000, -0.000002, 0.778976, 0.627054)

I have checked and by no means the TRS could be converted to a matrix that comes even close to the one read from powervr.

Objects are read from the POD file as follow:

translation: Vector3(&(node->pfAnimPosition[j * 3]));
rotation: Quaternion(
node->pfAnimRotation[j * 4 + 0],
node->pfAnimRotation[j * 4 + 1],
node->pfAnimRotation[j * 4 + 2],
node->pfAnimRotation[j * 4 + 3]
scale: Vector3(&(node->pfAnimScale[j * 7]))

Perhaps there is some bug in my conversion code although I have checked 1000 times, also I have created random translation, rotations and scaling and converted to matrices and then converted back to TRS and got the same values. That's why I have put here the parameters read from POD file.
From imgtec site I received no answer.
Or perhaps the frame matrices does not come from a simple T*R*S transform and there is something more.
Animations are done in 3dmax.

Any solution or explanation for this is welcome.
Useless to say, the model, when used with matrices that come from TRS read from the POD file, deforms horribly. The first frame looks good, but the following not.

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!