1

我买了这本书“DirectX 11 3D 编程简介”,希望我可以使用 SharpDX 将所有内容移植到 C#,因为我不懂 C++。好吧,我似乎找不到 SharpDX 的 XNA Math 包装类,而这本书广泛涉及该库。还有什么我可以得到的吗,我可以下载一些 XNA Math C# 包装器,这样我就可以继续学习了?

4

1 回答 1

1

MonoGame 和 SharpDX 都具有与原始 XNA Game Studio 数学库中的数学结构相同的数学结构。例如,请参阅SharpDX命名空间中的 Vector2。

更新

请注意,Frank Luna 的书是针对 C++ 开发的。此处对“XNAMath”的引用实际上是指 DirectX SDK 中附带的 C++ SIMD 数学库。其最新版本是Windows 8.x SDK 中的DirectXMath

通常,将为 XNAMath 编写的 C++ 代码更改为使用 DirectXMath 非常容易。有关详细信息,请参阅MSDN

在 D3DX9 中提供的旧 D3DXMath 数学库只是在 D3DX10 中复制,根本没有被带到 D3DX11 中。您可以在此处找到有关从 D3DXMath 迁移到 DirectXMath 的一些建议。

这些都与 SharpDX 没有任何关系,SharpDX 是 Direct3D 的 C# 包装器。与 XNA Game Studio 完全一样,SharpDX 和 MonoGame 都包含自己的 C# 数学库,因为每个向量操作的编组非常低效。

请注意,DirectXMath 有一个名为SimpleMath的 C++ 包装器,它包含在DirectX 工具包中,它提供“XNA Game Studio”风格的数学类型,例如Vector2Vector3Matrix等。它是使用 DirectXMath 实现的,并且可以与 DirectXMath 进行简单的互操作。

于 2014-07-31T17:51:39.343 回答