gpt4 book ai didi

c++ - 如何在不破坏网格缠绕顺序的情况下将 Z-Up 顶点转换为 Y-Up 顶点。 (DX9c)

转载 作者:行者123 更新时间:2023-11-30 05:24:25 26 4
gpt4 key购买 nike

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

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

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

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

提前致谢。

最佳答案

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

关于c++ - 如何在不破坏网格缠绕顺序的情况下将 Z-Up 顶点转换为 Y-Up 顶点。 (DX9c),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38678584/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com