code-google-com / awd

Automatically exported from code.google.com/p/awd
Apache License 2.0
0 stars 0 forks source link

Incorrect 4x3 identity matrix #56

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Steps to reproduce the problem :
1. create any AWDSceneBlock (for example a MeshInstance) without specifying a 
transform matrix
2. write the scene to a file
3. analyse the output file, specifically the 4x3 transform matrix of the scene 
block
4. the matrix is not the identity matrix, instead it is the following matrix:
(1 0 0 0)
(0 0 0 1)
(0 1 0 0)

The transform matrix should be:
(1 0 0 0)
(0 1 0 0)
(0 0 1 0)

This was tested with the HEAD revision, on a 64-bit Windows 7 OS.

Additional informations : when creating a scene block, the default transform 
matrix is set to the 4x4 identity matrix (scene.cc line 17). When writing the 
scene_block to a file, only the first 12 elements are written (scene.cc line 
45). The issue comes from the fact that truncating a 4x4 identity matrix 
doesn't make a 4x3 identity matrix, because they are written column by column 
and not line by line.

Original issue reported on code.google.com by bousquet...@gmail.com on 26 Mar 2013 at 11:07

GoogleCodeExporter commented 9 years ago
Also, the specification document is incorrect on the top of page 21 : it states 
that the Transform matrix field is a 128-byte 4x4 matrix, but it is de facto 
written as a 48 byte 4x3 matrix

Original comment by bousquet...@gmail.com on 26 Mar 2013 at 11:09