.NET / Mono HW Accelerated Graphics с программным откатом

Предпосылки

Насколько мне известно, WPF по возможности выполняет отрисовку с аппаратным ускорением, с откатом к программному рендерингу, если пользователь не имеет DirectX 9+. Это очень интересная идея, и мне даже нравится идея XAML .

Причина, по которой мне это не нравится, и почему я даже не потрудился изучить это, заключается в том, что, хотя Windows Forms является технологией Microsoft и уступает WPF, она кроссплатформенная благодаря Mono , что-то не так для WPF и, вероятно, никогда не будет.
ведутся споры о том, ударит ли оболочка .NET WinForms для Linux / OS X в будущем кирпичную стену патентной защиты, но это выходит за рамки этого вопроса.

Вопрос

Есть ли какая-нибудь библиотека для .NET и Mono , которая позволит мне использовать базовое аппаратное ускорение (думаю, альфа-композитинг, быстрая манипуляция с пикселями и т. д.) с программным откатом для систем без необходимых графических процессоров / драйверов?

Вкратце: быстрая графика на устаревших настольных компьютерах и современных ноутбуках , но пригодная для использования графика на недорогих нетбуках и подобных устройствах. Это не для разработки игр .

Дополнительные примечания

Есть несколько уловок, чтобы сделать GDI + быстрее. Set / GetPixel значительно улучшены за счет доступа к необработанному указателю .
Используемый формат пикселей может значительно улучшить рендеринг, 32bppPArgb (32-битный с 8-битными значениями альфа и RGB , предварительно умноженный на альфа ).
Есть другие уловки , которые могут увеличить скорость, но управляемый GDI + все еще медленный для некоторых целей.

Фреймворки, о которых я знаю

  • Unity3D - AFAIK не поддерживает Mono. Делает. Условно-бесплатная версия с бесплатной версией.
  • TAO Framework - Выглядит немного сложно и, похоже, не поддерживает программный рендеринг.
  • OpenTK - Активный, хорошо проработанный и лучше, чем TAO, но без программного обеспечения.
  • SDL.NET - Та же проблема, что и выше.
  • MonoXNA - То же, что и выше.
  • Irrlicht - «Он полностью кроссплатформенный, с использованием D3D, OpenGL и собственного программного средства визуализации».
  • Silverlight / Moonlight - предложено dthorpe . Альфа-качество, никакой поддержки.
  • Mono.Cairo - предложено Mark H .
  • AGG - Высококачественный, очень эффективный программный рендеринг, реализованный на C ++ с неофициальным портом C # .
  • Axiom3D - Порт Ogre. Поддерживает Mono, с открытым исходным кодом и кажется живым. Многообещающе.

Мой текущий выбор - попробовать Иррлихт, но только потому, что я не вижу альтернативы.Есть?
Кроме того, несмотря на то, что он, кажется, поддерживает программный рендеринг, я не знаю, в каком состоянии он находится в его оболочке .NET / Mono , а ссылка на его поддержку - это сообщение на форуме .

на данный момент нет.

Кроме того, есть еще одна проблема: я не знаю, как «абстрагироваться» от графической библиотеки. Если в дальнейшем я пойму, что сделал неправильный выбор, я не буду знать, что делать.

Пожалуйста, простите за длину этого вопроса.


Изменить: Поскольку на этот вопрос было два действительно конструктивных ответа, я подожду несколько дней и отмечу наиболее одобренный как принятый ответ.

Из других новостей, похоже, что OpenGL реализован в программном обеспечении , как поставщиками ОС, так и третьими сторонами, и эти реализации будут использоваться фреймворками OpenGL в отсутствие сторонних драйверов.

5
задан Community 23 May 2017 в 12:03
поделиться