matrix 4x4 to matrix 4x3 conversion

Forum for OctaneRender Lua scripting examples, discussion and support.
Post Reply
ruthenoid
Licensed Customer
Posts: 21
Joined: Sat Apr 17, 2010 6:51 am
Location: cologne, ger

How can I convert a matrix 4x4 (from Maya) to octane's 4x3 (scatter)?
Is it a matter of rotating it and stripping a row or is this somewhat more complicated ?

thank you!
OS: Win7 x64, RAM: 8Gb, GPU: GTX 460 2048 Mb
calus
Licensed Customer
Posts: 1308
Joined: Sat May 22, 2010 9:31 am
Location: Paris

here is my simple mel script to convert maya transform matrix to octane matrix, you can see how it is re-ordered

Code: Select all

{string $selection[] = `ls -sl -tr`;
int $n = 0;
string $octMatrix[] ; 
for ($transform in $selection) {
    float $matrix[] = `xform -q -ws -m $transform`;
    $octMatrix[$n] = $matrix[0]+" "+$matrix[4]+" "+$matrix[8]+" "+$matrix[12]+" "+$matrix[1]+" "+$matrix[5]+" "+$matrix[9]+" "+$matrix[13]+" "+$matrix[2]+" "+$matrix[6]+" "+$matrix[10]+" "+$matrix[14]+" ";
    $n=$n+1;
    } 
print $octMatrix;
}
Pascal ANDRE
ruthenoid
Licensed Customer
Posts: 21
Joined: Sat Apr 17, 2010 6:51 am
Location: cologne, ger

Awsome!
Thank you, calus!
OS: Win7 x64, RAM: 8Gb, GPU: GTX 460 2048 Mb
User avatar
roeland
OctaneRender Team
Posts: 1823
Joined: Wed Mar 09, 2011 10:09 pm

Yes normally this is the case. Octane only supports affine transforms, it does not support projective transform matrices. In mathematical terms this means the last row of the matrix will be (0, 0, 0, 1). This row is not explicitly stored in Octane.
Post Reply

Return to “Lua Scripting”