我在尝试找出最终变换矩阵的正确乘法顺序时遇到了困难。我总是会感到奇怪的动作或扭曲的几何形状。我当前的模型解释如下:
对于单个节点,我的乘法顺序是:
L = S * R * T
哪里
L =局部变换矩阵
S =局部比例矩阵
R =局部旋转矩阵
T =本地翻译矩阵
对于节点的世界转换:
宽=宽*长
哪里
W =世界变换矩阵
PW =父世界转换矩阵
L =上面计算的局部变换矩阵
渲染时,我为每个节点计算矩阵:
MV = Inv(C)*净重
哪里
MV =特定节点的模型视图转换矩阵
Inv(C)=逆相机变换矩阵
NW =上面计算的节点的世界转换矩阵。
最后,在着色器中,我进行了以下转换:
TVP = PRP * MV * VP
哪里
TVP =最终变形的顶点位置
PRP =透视矩阵
MV =上面计算的节点的世界转换矩阵
VP =未变换的顶点位置。
在当前模型中,具有局部旋转的子节点在转换相机时会奇怪地旋转。乘法顺序哪里出问题了?