据我所知,如果可能,WPF会进行硬件加速绘图,如果用户没有DirectX 9+,则会回退到软件渲染。这是一个非常有趣的想法,我甚至喜欢XAML的想法。
我不喜欢它的原因,以及为什么我甚至不打算学习它,是因为虽然Windows Forms是Microsoft技术,并且不如WPF,但它是跨平台的{{3对于WPF来说,这是不正确的,而且可能永远不会 关于Linux / OS X的.NET WinForms包装器是否会在未来出现专利砖墙,这是Mono,但这超出了这个问题的范围。
.NET 和 Mono 是否有任何库可以让我使用基本的硬件对于没有所需GPU /驱动程序的系统,使用软件回退进行加速(想想alpha合成,快速像素操作等)?
简而言之:非古老桌面和现代笔记本电脑上的快速图形,但低端debate和类似设备上的可用图形。 这不适用于游戏开发。
有一些技巧可以让GDI +更快。 netbooks可以大大改善Set / GetPixel
使用的像素格式可以极大地改善渲染,raw pointer access(32位,8位Alpha和RGB值32bppPArgb)。
有Pre-multiplied by the alpha other可以获得更快的速度,但托管GDI +在某些方面仍然很慢。
我目前的选择是尝试Irrlicht,但仅仅因为我看不到其他选择。有吗?
此外,即使它似乎支持软件渲染,我也不知道它的状态是Axiom3D,它的支持链接是.NET/Mono wrapper。
目前没人。
此外还有一个问题:我不知道如何在图形库周围“抽象”。如果我进一步意识到我做出了错误的选择,我将不知道该怎么做。
请原谅这个问题的长度。
编辑:由于这个问题有两个非常有建设性的答案,我会等几天,然后选出最受欢迎的答案作为接受的答案。
在另一则新闻中,OpenGL似乎是forum post,无论是OS供应商还是第三方,这些实现都将被OpenGL框架用于缺少第三方驱动程序。
答案 0 :(得分:5)
cairo怎么样?它有多个后端,包括OpenGL,GDI,X和Quartz,几乎可以在任何设备上运行。 Mono.Cairo为它实现了.NET包装器,但我不确定这是否允许通过代码切换后端,或者是否需要为每个系统重建。
Cairo用作Moonlight,Gtk +和Mono的System.Drawing实现的后端。
答案 1 :(得分:4)
您的阵容中未提及的一个框架集是Silverlight。它在Windows上加速了硬件,而Moonlight现在在Linux上加速硬件加速。不确定软件的后备,但我认为它们必须有后备,因为它们都是为消费者的广泛使用而设计的。
答案 2 :(得分:1)
OpenTK然后使用http://www.mesa3d.org/怎么样?自从我查看mesa3d以来已经很长时间了,但它为OpenGL提供了软件渲染功能。