Hi,I'm just wondering whether this can be done in ps shader.I have an non-orthogonal matrix and need to orthogonalize it and using inverse-transpose result.I turned to matlab for help,only found their instructions a bit of complicated for shaders.It might influence the performance.So is there a solution yet?Thanks for any reply:)

PS:Image below shows the result of using origin matrix and do lighting in world space.

**Right.png** **45.24KB**
26 downloads

And this is the wrong result of orthogonalize the origin matrix and then using the inverse-transpose one and do lighting in tangent space.

**wrong.jpg** **27.32KB**
24 downloads

And here is my Orthogonalization code.

float3x3 Orthogonalization_Schmidt(float3x3 OrginMatrix) { float3 a1 = OrginMatrix[0]; float3 a2 = OrginMatrix[1]; float3 a3 = OrginMatrix[2]; float3 b1 = a1; float3 b2 = a2 - dot(a2,b1)/dot(b1,b1)*b1; float3 b3 = a3 - dot(a3,b1)/dot(b1,b1)*b1 - dot(a3,b2)/dot(b2,b2)*b2; return float3x3(normalize(b1),normalize(b2),normalize(b3)); }