3

我意识到这里有很多关于在 XNA 和 SlimDX 之间进行选择的问题,但这些都与游戏编程有关。

一点背景知识:我有一个从 XML 描述中呈现场景的应用程序。目前我正在使用 WPF 3D,这主要是有效的,除了 WPF 无法在屏幕外渲染场景(即在服务器上,而不在窗口中显示它们),并且渲染到位图会导致 WPF 回退到软件渲染。

所以我不得不编写自己的渲染器。以下是要求:

  • 混合 3D 和 2D 元素。
  • 每个场景的元素相对较少(数十个网格,数十个 2D 元素)。
  • 大型场景(打印最多 3000 像素正方形)。
  • 只会渲染一个帧(即 FPS 不是问题)。
  • 不透明蒙版。
  • 像素着色器。
  • 软件回退(服务器可能有也可能没有像样的 gfx 卡)。
  • 被渲染到屏幕外的可能性。

正如您所看到的,这是非常简单的东西,WPF 可以很好地管理它,除了不能导出场景问题。

特别是我不需要游戏开发中通常需要的许多东西。考虑到这一点,您会选择 XNA 还是 SlimDX?代码的非渲染部分已经用 C# 编写,所以要坚持下去。

4

2 回答 2

5

我没有使用过 SlimDX,但根据我使用 XNA 的经验和阅读 SlimDX 的目标。我建议 SlimDX。XNA 虽然可用于其他用途,但主要是游戏引擎,而不是渲染引擎。它有很多针对游戏的特定优化和方法。

此外,如果您使用动态文件,XNA 喜欢将其资源预构建到 DirectX 文件 (.x) 中,我认为SlimDX 是您的最佳选择。

于 2010-05-19T19:59:42.597 回答
2

XNA 和 SlimDX 在本质上非常接近,但也有一些区别:

  • XNA 需要具有最少像素/顶点着色器 1.1 的 GPU,而我认为 SlimDX 不需要。

  • SlimDX 支持 DirectX10 和 11,而 XNA 仅支持 DirectX 9。

  • XNA 是 Windows、Xbox 360、Zune 和 Windows Phone 7 之间的跨平台,而 SlimDX 不是。

  • XNA 拥有强大的社区 (creators.xna.com),其中包含大量教程和帮助材料。

我会选择 XNA。

于 2010-05-20T10:27:48.237 回答