|
OpenGL的坐标使用列向量,坐标变换公式为“矩阵×向量”。假设顺序进行1、2、3三个变换,如果考虑绝对坐标系,则变换矩阵为 M3×M2×M1,如果考虑相对坐标系,则变换矩阵为 M1×M2×M3。其中相对坐标系更符合人们的思维习惯。
回到OSG,因为OSG使用行向量,坐标计算公式为“向量×矩阵”,其变换矩阵是OpenGL矩阵的转置。假设顺序进行1、2、3三个变换,根据矩阵乘法公式,相对坐标系下的变换矩阵应该是 M3'×M2'×M1'。('表示转置),但是array写的两本书《OpenSceneGraph 3.0 Beginner's Guide》(P101)、《OpenSceneGraph三维渲染引擎设计与实践.pdf》(P41)中,变换矩阵均为 M1'×M2'×M3',恰好是绝对坐标系下的变换矩阵。
是我的理解有问题,还是说,书中给出的计算方法就是对应的绝对坐标系?
希望各位同仁能解惑。 |
|