3

我正在创建一个为 3D 世界生成数据的 .NET 库,但它本身不进行任何渲染。它依靠 XNA、DirectX、OpenGL 等根据数据进行渲染(最终编码器执行此操作)。我想以最有意义的格式提供世界数据。在 XNA 中,“Z”进入屏幕,“X”进入左右,“Y”进入上下(基于我的测试)。我可以以同样的格式提供世界数据,但我不想让它依赖于 XNA。这是轴方向最常见的格式吗?我总是将事物想象成“Z”向上向下,“Y”在屏幕上,所以我打算以这种格式提供世界数据,然后在我的 XNA 引导程序中转换它,但如果没有其他人使用具有该方向的数据,

非常感谢任何建议。谢谢你。

另外,世界数据基本上是地形数据,所以它有一个逻辑结构,应该是上下——山脉等。

4

2 回答 2

2

没有“通用”坐标系。

默认情况下,OpenGL 通常使用右手。Direct3D 通常默认使用左手坐标系。但是,两者都可以处理左手或右手坐标系。然而,即便如此,仍有多种方法可以将世界坐标转换为视图,并且不同的系统使用不同的约定。

如果您正在制作将生成模型的东西,并希望它被任何底层系统使用,那么能够拥有用户提供的坐标系并使用它进行构建可能会使您的库更加有用。进行转换相对简单。

于 2011-12-05T18:54:17.990 回答
1

是的,在视频游戏编程中,因为 DirectX 是一段时间以来最流行的 3D 库,左手 X 向右,Y 向上,Z 向前是并且仍然是最常用的轴约定。

但是,请注意,XNA 数学课程都已切换到右手约定,因此如果您想在左手系统中工作,您将不得不反转一些结果,例如叉积。

于 2011-12-05T18:52:02.927 回答