我个人实验的目标是用 C# 创建一个 3D 引擎。
我读过一些关于 XNA 和 SlimDX 的文章。我不确定 XNA,因为它基本上已经是一个完整的引擎,所以我不会做太多事情。SlimDX 看起来更接近我的假设,但如果有任何其他建议,我将不胜感激。
我有一些使用 OpenGL 的经验,并为 Android 游戏和使用 jogl 的 PC 编写了一个简单的引擎。
我有兴趣听到类似于通过 Java / OpenGL 提供的抽象级别的东西,但这次是 DirectX。
作为 DirectX c# 包装器,还有http://sharpdx.org/
Xna/SlimDX 之间的几个优点/缺点
Xna 易于学习,您已经拥有一些内置函数来加载模型、绘制文本、一些内置渲染状态预设、数学类/结构。另一方面,与新的显卡功能相比,它的功能集相当有限。您将有一些东西快速启动并运行,但另一方面,您最终可能会受到高级功能的限制(镶嵌/计算/附加缓冲区/只读深度等等)。当然,你还有很多工作要做。
SlimDX/SharpDX 相当小(它们主要包含 DirectX 功能),所以如果您想使用 DirectX11(如果您想使用 9 go for xna :),您将需要做一些工作才能让某些东西运行首先,但您将拥有完整的 DX 功能和完全的灵活性来组织您的引擎。您将需要拥有自己的模型导入器、字体渲染器 (DirectWrite)、状态管理器。最常见的数学部分已经存在(矩阵/向量),因此您不必担心这部分。