在DirectX中渲染环境

时间:2010-05-25 14:38:57

标签: c# directx

我想在C#中为DirectX编程,我有DirectX SDK, 应该选择什么样的项目? Windows窗体或....

3 个答案:

答案 0 :(得分:3)

你应该先问问自己:我的项目的目的是什么?

如果您打算使用精美的2D-3D视觉效果构建应用程序,那么您只需要学习WPF。

另一方面,如果你想构建需要大量资源的游戏,XNA就是你的选择。

在XNA上构建应用程序非常痛苦,因为XNA是为游戏而构建的。 关于使用WPF构建游戏也是如此。

在这两种情况下,您都不需要与DirectX本地通信(可以通过C ++完成)。除非您正在构建低级渲染引擎或(非常)高预算游戏。

答案 1 :(得分:2)

您应该使用XNA,这是Managed DirectX C#

的替代品
   Microsoft XNA('XNA未隐藏)是一组工具,具有Microsoft提供的托管运行时环境,有助于计算机游戏开发和管理。 XNA试图让游戏开发者免于编写“重复的样板代码”,并将游戏制作的不同方面纳入单一系统。

From Wikipedia XNA Article

除非你想只渲染窗口,但WPF可能是最好的选择。请参阅此blog帖子。

答案 2 :(得分:1)

XNA:

XNA是一个面向游戏的框架,允许您定位多个硬件轻松WindowsXbox 360Zune和现在Windows Phone 7使用版本4)使用.NET语言,如C#。

请注意,XNA与DirectX SDK之间没有1-1关系,例如,它不会暴露D3D10或D3D11或D3DX中可以找到的某些接口。

.NET Wrappers:

如果您正在寻找类似于原生DirectX API的东西,您有3个选项:

  • Windows® API Code Pack for Microsoft® .NET Framework: 包装了一堆Windows本机库,如DirectX,因此可以从托管代码中使用它们。请注意,它不会暴露D3D10之前的API,例如D3D9。

  • SlimDX:同样的事情,但仅限于DirectX并将Direct3D从版本9暴露到11(SlimDX是一个与Microsoft无关的旁白项目)。

  • C++/CLI和DIY包装:除非你有特殊需要,否则我不推荐它。

最终的选择取决于您的需求。如果只是为了学习DirectX API而在C#中,我会说选择Windows API Code Pack或SlimDX。