Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#是否本机使用GPU进行图形处理?_C#_Graphics_Gpu - Fatal编程技术网

C#是否本机使用GPU进行图形处理?

C#是否本机使用GPU进行图形处理?,c#,graphics,gpu,C#,Graphics,Gpu,我想以最快的方式绘制大量使用的图形。如果我使用标准的C#graphics回调(es.graphics.drawline),我做得对吗?还是我要使用不同的库?是GDI+调用。如果您使用Windows窗体并使用System.drawing类进行绘图,那么您使用的是GDI+,它不是硬件加速的。要获得硬件加速,需要使用WPF代替WinForms或Direct3D/Direct2D绘图。后两个(Direct3D/Direct2D)是基于COM的,因此您需要一个.NET包装器。Microsoft将Direc

我想以最快的方式绘制大量使用的图形。如果我使用标准的C#graphics回调(es.graphics.drawline),我做得对吗?还是我要使用不同的库?

是GDI+调用。如果您使用Windows窗体并使用System.drawing类进行绘图,那么您使用的是GDI+,它不是硬件加速的。要获得硬件加速,需要使用WPF代替WinForms或Direct3D/Direct2D绘图。后两个(Direct3D/Direct2D)是基于COM的,因此您需要一个.NET包装器。Microsoft将Direct3D for.NET包装为托管DirectX,后跟XNA。这两个(我相信)现在都被弃用了。对于DirectX库,还有一些更为更新的


编辑:我刚从@HansPassant的评论中了解到GDI+是2D加速的。我认为这只适用于GDI(与GDI+相反),因为GDI+处理诸如抗锯齿之类的事情,而2D硬件(据我所知)并没有这样做。但显然我错了。

为什么要投否决票,这个问题并不愚蠢?你是在使用winforms还是wpf?@YvesDaoust似乎在没有正当理由的情况下投了很多否决票,但如果你读了对这个问题的第一条评论,你就会发现有些人就是“那样”。。。如果不能直接使用cuda,您可以使用库将c#转换为cuda检查答案Graphics类使用传统的视频驱动程序接口,几十年来一直采用2D加速。这取决于视频驱动程序来实际实现它,现代人使用GPU资源的可能性非零。但这是完全看不见的,没有程序员会在谈论System.Drawing.Graphics时使用这个术语。您需要DirectX来真正利用GPU渲染,如WPF或现代UI提供的渲染。我只想指出,
MonoGame
将DirectX或OpenGL封装在XNA使用的相同API中,但仍在积极维护中,除此之外,我强烈推荐SharpDX作为DirectX的托管包装器。