如何使用HLSL对非正交矩阵进行正交化?

时间:2013-01-27 12:58:28

标签: math matrix hlsl ps orthogonal

我只是想知道这是否可以在ps着色器中完成。我有一个非正交矩阵,需要将它正交化并使用反转置结果。我转向matlab寻求帮助,只发现了一些指令对着色器很复杂。它可能会影响性能。所以有解决方案吗?感谢您的回复:)

1 个答案:

答案 0 :(得分:0)

对于任意矩阵,在一般情况下可能是相当复杂的任务,但对于稍微失去其正交性的3x3矩阵,您可以使用Gram-Schmidt process来正交化矩阵的前两个轴并交叉乘积来导出第三轴:

Xx Xy Xz
Yx Yy Yz
Zx Zy Zz

X' = X/|X|
Y' = Y"/|Y"|, Y" = Y - X'*dot(X',Y)
Z' = cross(X',Y')