假设有两个几何体世界,它们的坐标系不同,分别为右手和左手坐标系,但两个世界有完全一样的物体,即两个世界的对应物体的三角顶点坐标都完全一样.然后在同样的方位上摆上一个摄像机,那成像场景是否一致?
起初从直觉上我怎么想,都觉得都应该是一样的,完全一样的物体坐标,完全一样的镜头位置,在每个孤立的坐标系统下都应该有一样的效果.但是原先以OpenGL坐标系构建的世界,在DirectX下我看到了一个奇幻的左右颠倒的世界.我在纸上画出两个坐标系,才发现原来真是这样,左手坐标系和右手坐标系本质上是两个左右颠倒的世界,而非以前所以为的Z正轴的朝向区别.
在实际的API中,无论OpenGL/DirectX都可以实现左右手坐标系.DX可以使用D3DXMatrixLookAtRH和D3DXMatrixPerspectiveFovRH来实现右手坐标系.OpenGL可以使用手动构建左手视图和投影矩阵来实现左手坐标系,毕竟左右手只是图形API中Transform的部分.