XNA vs SlimDX用于屏幕外渲染器

时间:2010-05-19 19:54:02

标签: c# .net 3d xna slimdx

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

一点背景:我有一个应用程序,可以从XML描述中呈现场景。目前我正在使用WPF 3D,除了WPF无法在屏幕外渲染场景(即在服务器上,而不在窗口中显示它们),并且渲染到位图导致WPF回退到软件渲染之外,这大部分都有效。 / p>

所以我面临着必须编写自己的渲染器。以下是要求:

  • 3D和2D元素的混合。
  • 每个场景的元素相对较少(数十个网格,数十个2D元素)。
  • 大型场景(打印时最大为3000像素)。
  • 只会呈现一个帧(即FPS不是问题)。
  • 不透明面具。
  • 像素着色器。
  • 软件后备(服务器可能有也可能没有合适的gfx卡)。
  • 可以在屏幕外渲染。

正如你所看到的那样,它非常简单,WPF可以很好地管理它,除了那些无法导出的场景问题。

特别是我不需要游戏开发中通常需要的许多东西。因此,请记住,您会选择XNA还是SlimDX?代码的非呈现部分已经用C#编写,所以想坚持下去。

2 个答案:

答案 0 :(得分:5)

我没有使用过SlimDX,但是根据我对XNA的经验和阅读SlimDX的目标。我建议使用SlimDX。 XNA虽然可以用于其他东西主要是游戏引擎,而不是渲染引擎。它有很多具体的优化和优化;面向游戏的方法论。

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

答案 1 :(得分: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。