.NET / Mono HW ускоренная графика с программным резервом - PullRequest
5 голосов
/ 15 декабря 2011

Фон

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

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

Вопрос

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

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

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

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

Рамки, которые я знаю

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

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

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

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

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


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

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

Ответы [ 3 ]

5 голосов
/ 15 декабря 2011

Как насчет Каир ?Он имеет несколько бэкэндов, включая OpenGL, GDI, X и Quartz, и должен работать практически на любом устройстве. Mono.Cairo реализует для него оболочку .NET, но я не уверен, позволяет ли это переключать серверную часть через код или требуется перестройка для каждой системы.в качестве серверной части для реализации Moonlight, Gtk + и Mono System.Drawing.

4 голосов
/ 15 декабря 2011

Один набор фреймворков, не упомянутый в вашей линейке, это Silverlight.Аппаратное ускорение в Windows, и Moonlight теперь аппаратное ускорение в Linux.Не уверен насчет откатов программного обеспечения, но я предполагаю, что они должны иметь откат, поскольку оба они были разработаны для очень широкого использования потребителями.

1 голос
/ 01 июля 2012

Как насчет OpenTK, но затем с использованием http://www.mesa3d.org/? Прошло много времени с тех пор, как я смотрел на mesa3d, но он предоставляет возможность программного рендеринга для OpenGL.

...