C# XNA vs SlimDX用于屏幕外渲染器
我意识到在这里有很多关于选择XNA和SlimDX的问题,但这些都与游戏编程有关 一点背景知识:我有一个应用程序,可以根据XML描述渲染场景。目前我正在使用WPF 3D,这主要是可行的,除了WPF无法在屏幕外渲染场景(即在服务器上,不在窗口中显示场景),而且渲染到位图会导致WPF退回到软件渲染 因此,我不得不编写自己的渲染器。以下是要求:C# XNA vs SlimDX用于屏幕外渲染器,c#,.net,3d,xna,slimdx,C#,.net,3d,Xna,Slimdx,我意识到在这里有很多关于选择XNA和SlimDX的问题,但这些都与游戏编程有关 一点背景知识:我有一个应用程序,可以根据XML描述渲染场景。目前我正在使用WPF 3D,这主要是可行的,除了WPF无法在屏幕外渲染场景(即在服务器上,不在窗口中显示场景),而且渲染到位图会导致WPF退回到软件渲染 因此,我不得不编写自己的渲染器。以下是要求: 3D和2D元素的混合 每个场景相对较少的元素(数十个网格,数十个2D元素) 大场景(打印最高可达3000px正方形) 仅渲染单个帧(即FPS不是问题) 不透明
- 3D和2D元素的混合
- 每个场景相对较少的元素(数十个网格,数十个2D元素)
- 大场景(打印最高可达3000px正方形)
- 仅渲染单个帧(即FPS不是问题)
- 不透明遮罩
- 像素着色器
- 软件后备(服务器可能有也可能没有像样的gfx卡)
- 被渲染到屏幕外的可能性
特别是我不需要游戏开发中通常需要的很多东西。记住这一点,您会选择XNA还是SlimDX?代码的非渲染部分已经用C#编写,因此希望继续使用。我没有使用SlimDX,但基于我使用XNA的经验和对SlimDX目标的了解。我建议用SlimDX。XNA虽然可以用于其他方面,但它主要是一个游戏引擎,而不是渲染引擎。它有很多针对游戏的特定优化和方法
此外,XNA喜欢将其资源预构建到DirectX文件(.x)中。如果您使用的是动态文件,我认为SlimDX是您的最佳选择。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。你说得对,我担心SlimDX的级别太低(虽然级别很低,但也没什么问题),但我在几天内就成功地编写了一个可用的渲染器,甚至之前从未做过任何Direct3D编程。只是一个小小的吹毛求疵:XNA框架,顾名思义,是一个游戏框架,而不是引擎。然而,它比SlimDX更高一点,专注于游戏创作。