我有一个C ++ DirectX9渲染引擎,Y为我的向上轴。当我导入一个用Z建模的模型作为向上轴时,我只需交换所有模型的顶点的Y和Z值,以使模型正确定向。除了大多数(不是全部)网格的缠绕顺序错误之外,这种方法工作正常。
由于我在启用背面剔除的情况下渲染模型,因此模型的外壳是不可见的,内部外壳是可见的。
为了纠正这个问题,我已将指数反转,并且工作正常......但由于并非所有模型都有相同的错误绕线顺序,我坐在一半的模型中,正确的绕线顺序和另一半的订单不正确。
所以我想我的问题是:如何正确地将以Z为上轴的3d模型转换为以Y为上轴的3d模型,而不会破坏过程中的绕线顺序。
提前致谢。
答案 0 :(得分:1)
绕组命令是错误的。通常情况下,(x,y,z)是一个RIGHT-HANDED坐标系:也就是说,如果你将右手拇指指向+ x方向,右手食指指向+ y方向,则自然地将其他三个手指卷曲,应指向+ z方向。您可能以将系统从右手改为左手的方式翻转坐标。 (x,y,z)可以更改为(y,z,x)或(z,x,y),但其他排列将显示错误的啰嗦。