具有软件回退的.NET/Mono HW加速图形

Cam*_*tin 5 .net graphics mono fallback hardware-acceleration

背景

据我所知,如果可能的话,WPF会进行硬件加速绘图,如果用户没有DirectX 9+,则会回退到软件渲染.这是一个非常有趣的想法,我甚至喜欢XAML的想法.

我不喜欢它的原因,以及为什么我甚至不打算学习它,是因为Windows Forms是一种微软技术,并且不如WPF,它是通过Mono的跨平台,这对于WPF来说是不正确的,而且可能永远不会.围绕Linux/OS X的.NET WinForms包装器是否会在未来打入专利砖墙
存在争议,但这超出了这个问题的范围.

是否有任何图书馆.NET 单声道,这将让我使用基本的硬件加速(认为alpha合成,快速的像素处理等)与软件后备的系统没有所需的图形处理器/驱动程序?

简而言之:非古代台式机和现代笔记本电脑上的快速图形,但低端上网本和类似设备上的可用图形.这不适用于游戏开发.

进一步说明

有几个技巧可以让GDI +更快.原始指针访问大大改善了Set/GetPixel .
使用的像素格式可以极大地改善渲染,32bppPArgb(32位,8位Alpha和RGB值预先乘以alpha).
还有其他 技巧可以获得更快的速度,但是管理的GDI +在某些方面仍然很慢.

我意识到的框架

  • Unity3D -AFAIK不支持Mono.请问.共享软件免费版.
  • TAO框架 - 看起来有点复杂,似乎不支持软件渲染.
  • OpenTK - 活跃,发展良好,优于TAO,但也没有软件回退.
  • SDL.NET - 与上面相同的问题.
  • MonoXNA - 与上述相同.
  • Irrlicht - "它完全是跨平台的,使用D3D,OpenGL和它自己的软件渲染器".
  • Silverlight/Moonlight - 由dthorpe推荐.阿尔法质量,没有任何支持.
  • Mono.Cairo - Mark H建议.
  • AGG - 高质量,高效的软件渲染,使用非官方的C#端口在C++中实现.
  • Axiom3D - Ogre端口.支持单声道,开源,似乎还活着.有希望.

我目前的选择是 尝试Irrlicht,但仅仅因为我看不到其他选择.在那儿?
此外,即使它似乎支持软件渲染,我不知道它的.NET/Mono包装器的状态如何,它的支持链接是一个论坛帖子.

目前没有.

此外还有一个问题:我不知道如何围绕图形库"抽象".如果我进一步意识到我做出了错误的选择,我将不知道该怎么做.

请原谅这个问题的长度.


编辑:由于这个问题有两个非常有建设性的答案,我会等几天,并将最受欢迎的答案作为接受的答案.

在另一则新闻中,似乎OpenGL是由软件实现的,由OS供应商和第三方实现,而这些实现将由OpenGL框架在缺少第三方驱动程序时使用.

Mar*_*k H 5

开罗怎么样?它有多个后端,包括OpenGL,GDI,X和Quartz,几乎可以在任何设备上运行.Mono.Cairo为它实现了一个.NET包装器,但我不确定这是否允许通过代码切换后端,或者它是否需要为每个系统重建.

开罗被用作Moonlight,Gtk +和Mono的System.Drawing实现的后端.


dth*_*rpe 4

您的阵容中未提及的一个框架集是 Silverlight。它在 Windows 上进行了硬件加速,Moonlight 现在在 Linux 上进行了硬件加速。不确定软件后备,但我想它们必须有后备,因为它们都是为非常广泛的消费者使用而设计的。