XNA与SlimDX用于离屏渲染的比较

3
我意识到这里有许多关于选择XNA和SlimDX的问题,但它们都涉及游戏编程。
一点背景:我有一个应用程序,可以从XML描述中呈现场景。当前我正在使用WPF 3D,这个工具大部分都可以正常运行,但是WPF没有办法渲染屏幕外的场景(例如在服务器上,而不在窗口中显示它们),并且将其渲染为位图会导致WPF退回到软件渲染。
所以我面临着自己编写渲染器的问题。以下是要求:
- 3D和2D元素混合。 - 每个场景相对较少的元素(数十个网格,数十个2D元素)。 - 大场景(最大可达3000px平方,用于打印)。 - 只会渲染单个帧(即FPS不是问题)。 - 不透明度遮罩。 - 像素着色器。 - 软件备用(服务器可能或可能没有良好的图形处理器)。 - 可能被屏幕外渲染。
如您所见,这些要求相当简单,而且WPF可以很好地处理它们,除了无法导出场景之外。
特别是我不需要游戏开发通常需要的许多东西。因此,在考虑到这一点的情况下,您会选择XNA还是SlimDX?代码的非渲染部分已经用C#编写,所以希望继续使用它。
2个回答

5
根据我的经验和阅读关于SlimDX的目标,我建议使用SlimDX。虽然XNA也可以用于其他方面,但它主要是一个游戏引擎,而不是渲染引擎。它具有很多针对游戏的特定优化和方法。
此外,如果您正在使用动态文件,XNA喜欢将其资源预构建为DirectX文件(.x),我认为 SlimDX是最好的选择。

1
你说得对,我曾经担心SlimDX会太底层(它确实是底层的,但并没有成为问题),但我仅用了几天时间就成功编写了一个工作渲染器,即使以前从未进行过任何Direct3D编程。 - Grokys
只是小小的挑剔:XNA框架,正如其名称所示,是一个游戏框架,而不是引擎。然而,它比SlimDX更高级一些,并专注于游戏创建。 - Björn

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。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接