C# GPU与CPU、环境和图形处理

C# GPU与CPU、环境和图形处理,c#,cpu,gpu,C#,Cpu,Gpu,我的主要问题是:对于图形处理(例如,运动图像、碰撞、缩放等),我可以做些什么来获得处理的最佳性能?在什么情况下使用GPU而不是CPU,我可以有选择地使用其中一个吗?我应该吗?另外,如果我想获得图形处理的最佳性能,我应该使用什么图形API。或者我应该使用API吗 我觉得好像我在一个问题中问了很多问题,或者我的措辞不正确,但我不知道我还能做什么。如果需要任何澄清,请询问。我已经搜索了很多地方,但这可能是重复的,如果是,我很抱歉。我不确定你在创作什么,但以下是我对这个主题的思考: 一个好的选择是XNA

我的主要问题是:对于图形处理(例如,运动图像、碰撞、缩放等),我可以做些什么来获得处理的最佳性能?在什么情况下使用GPU而不是CPU,我可以有选择地使用其中一个吗?我应该吗?另外,如果我想获得图形处理的最佳性能,我应该使用什么图形API。或者我应该使用API吗


我觉得好像我在一个问题中问了很多问题,或者我的措辞不正确,但我不知道我还能做什么。如果需要任何澄清,请询问。我已经搜索了很多地方,但这可能是重复的,如果是,我很抱歉。

我不确定你在创作什么,但以下是我对这个主题的思考:

一个好的选择是XNA。这基本上是DirectX之上的一个包装器,用于将GPU用于图形密集型任务,但隐藏了一些直接使用DirectX的肮脏实现。游戏、图形模拟等的最佳选择

另一个选项是WPF,它在底部也使用DirectX,但比游戏和类似任务更适合创建用户界面,但非常灵活


WinForms/GDI+是最糟糕的选择,因为它根本不使用硬件加速,只使用CPU。

谢谢你的回答。我可能会使用XNA,但我想知道是否有任何方法可以直接使用DirectX,或者是否唯一的选项是包装器。还有SlimDX,它与XNA一样,是DirectX的.NET包装器,但是,据我所知,它的设计要好得多(并公开了更多DirectX API)。缺点是它不支持其他平台,如XBox360或Windows Phone。@GunnarJ:DirectX是C/C++API,因此无法直接从.NET访问。您可以p/调用所有必要的函数,也可以使用现有的包装器为您做同样的事情。@GunnarJ-Managed DirectX已被弃用,XNA已取代它。您可以查看其他一些DirectX包装器项目,例如SlimDX()或SharpDX()