1

我有一个以 Y 为上轴的 C++ DirectX9 渲染引擎。当我导入一个以 Z 作为上轴建模的模型时,我只需交换所有模型顶点的 Y 和 Z 值,以使模型正确定向。除了大多数(不是全部)网格的缠绕顺序错误之外,这很好用。

由于我在启用背面剔除的情况下渲染模型,因此模型的外壳是不可见的,而内壳是可见的。

我已经颠倒了索引以试图纠正这个问题,它工作正常......但由于并非所有模型都遭受相同的错误绕组顺序,我坐在一半具有正确绕组顺序的模型和另一半缠绕顺序不正确。

所以我想我的问题是:如何正确地将以 Z 为上轴的 3d 模型转换为以 Y 为上轴的 3d 模型,而不会破坏过程中的缠绕顺序。

提前致谢。

4

1 回答 1

1

如果您不保留坐标系的手性,则缠绕顺序是错误的。通常, (x, y, z) 是右手坐标系:也就是说,如果您将右手拇指指向 +x 方向,右手食指指向 +y 方向,其他三个手指自然卷曲,它们应指向 +z 方向。您可能已经以某种方式翻转了您的坐标,从而将系统从右手变为左手。(x,y,z) 可以更改为 (y,z,x) 或 (z,x,y),但其他排列将显示错误的缠绕性。

于 2016-07-30T23:57:33.193 回答