Я не думаю, что это действительно правда, что никому нет дела до «ускоренной векторной графики», как написано в этом ответе .
Nvidia, кажется, немного заботится. Помимо Килгарда, который является ведущим техническим специалистом по NV_path_rendering (отныне NVpr, чтобы спасти мои пальцы), президент Khronos Нил Треветт, который также является вице-президентом Nvidia, продвигал NVpr как можно больше в последние пару лет; увидеть его talk1 , talk2 или talk3 . И это, кажется, немного окупилось. На момент написания этой статьи NVpr теперь используется в Google Skia (который, в свою очередь, используется в Google Chrome) и независимо [от Skia] в бета-версии Adobe Illustrator CC (бета), согласно слайдам Килгарда на GTC14 ; там также есть несколько видео выступлений: Килгарда и Adobe, Разработчик из Каира (который работает в Intel) также заинтересован в NVpr. Разработчики Mozilla / Firefox также экспериментировали с NVpr, и они действительно заботятся о векторной графике с GPU-ускорением в целом, как показывает этот ток-шоу FOSDEM14 .
Microsoft также беспокоится, потому что они создали Direct2D , который используется довольно широко [если вы верите разработчику Mozilla из вышеупомянутого разговора].
Теперь перейдем к исходному вопросу: действительно, есть некоторые технические причины, по которым использование графических процессоров для рендеринга путей не является простым. Если вы хотите прочитать о том, как рендеринг путей отличается от стандартной трехмерной геометрии вершин и что делает GPU-ускорение рендеринга путей нетривиальным, то у Kilgard есть очень хороший пост , похожий на FAQ , который, к сожалению, спрятан где-то на форуме OpenGL.
Для получения более подробной информации о том, как Direct2D, NVpr и такие работы, вы можете прочитать статью Килгарда Siggraph 2012 , которая, конечно, ориентирована на NVpr, но также хорошо справляется с обзором предыдущих подходов. Достаточно сказать, что быстрые хаки не работают слишком хорошо ... (как отмечено в тексте вопроса PSE.) Существуют значительные различия в производительности между этими подходами, как обсуждалось в этой статье и показано в некоторых ранних демонстрациях Килгарда, например, в это видео . Следует также отметить, что в официальном документе расширения NVpr подробно описаны некоторые настройки производительности за эти годы.
То, что NVpr не был настолько хорош в Linux в 2011 году (в своей первой выпущенной реализации), как говорилось в блоге Qt's Zack Rusin в 2011 году, не означает, что ускорение векторов / путей в GPU безнадежно, как ответ г-на Голдберга по-видимому, из этого вытекает. Килгард фактически ответил на конец этого сообщения в блоге обновленными драйверами, показывающими улучшение в 2–4 раза по сравнению с более быстрым кодом Qt, а Русин ничего не сказал после этого.
Valve Corp. также заботится о графическом рендеринге с ускорением на графическом процессоре, но более ограниченным образом, связанном с рендерингом шрифтов и глифов. У них была хорошая, быстрая реализация сглаживания больших шрифтов с использованием ускоренных графическим процессором полей со знаком (SDF), представленных на Siggraph 2007 , который используется в их играх, таких как TF; на YouTube есть видео демонстрация техники (но я не уверен, кто это сделал).
Подход SDF получил некоторые улучшения от одного из разработчиков в Каире и Панго в форме GLyphy ; его автор выступил с докладом на linux.conf.au 2014, Слишком длинная версия, за которой не следили, состоит в том, что он делает приближение дуг-сплайна кривых Безье, чтобы сделать вычисления SDF более удобными в векторном (а не в растровом) пространстве (последнее сделал Valve). Но даже с приближением дуги-сплайна вычисления все еще были медленными; он сказал, что его первая версия работала со скоростью 3 кадра в секунду. Таким образом, он теперь делает выборку на основе сетки для вещей, которые «слишком далеко», которые выглядят как форма LOD (уровень детализации), но в пространстве SDF. С этой оптимизацией его демонстрации работали со скоростью 60 кадров в секунду (и это, вероятно, было ограничено Vsync). Однако его шейдеры невероятно сложны и раздвигают границы аппаратного обеспечения и драйверов. Он сказал что-то вроде: «для каждой комбинации драйвера / ОС мы должны что-то менять». Он также обнаружил значительные ошибки в шейдерных компиляторах, некоторые из которых были затем исправлены их соответствующими разработчиками. Так что это очень похоже на разработку игр для ААА ...
С другой стороны, похоже, что Microsoft заказала / определила немного нового оборудования для графических процессоров, чтобы улучшить реализацию Direct2D на оборудовании, используемом Windows 8, если оно доступно . Это называется целевой независимой растеризацией ( TIR ), имя, которое немного вводит в заблуждение относительно того, что на самом деле, по-видимому, делается, что изложено в заявке на патент Microsoft . AMD утверждает, что TIR улучшил производительность в 2D векторной графике примерно на 500% . И между ними и Nvidia произошла небольшая «война слов», потому что у Kepler GPU ее нет, а у AMD на основе GCN. Нвидия подтвердилачто это действительно немного нового оборудования, а не просто то, что может обеспечить обновление драйвера. В блоге Синофски есть еще несколько деталей, в том числе некоторые фактические критерии МДП. Я цитирую только общие идеи:
Чтобы повысить производительность при рендеринге неправильной геометрии (например, географических границ на карте), мы используем новую аппаратную функцию графики, которая называется Target Independent Rasterization или TIR.
TIR позволяет Direct2D тратить меньше циклов ЦП на тесселяцию, поэтому он может быстрее и эффективнее отдавать инструкции рисования графическому процессору, не жертвуя качеством изображения. TIR доступен в новом оборудовании для графических процессоров, разработанном для Windows 8, который поддерживает DirectX 11.1.
Ниже приведена диаграмма, показывающая улучшение производительности для рендеринга сглаженной геометрии из различных файлов SVG на графическом процессоре DirectX 11.1, поддерживающем TIR: [диаграмма обрезана]
Мы тесно сотрудничали с нашими партнерами по графическому оборудованию [читай AMD] для разработки TIR. Благодаря этому партнерству стали возможны значительные улучшения. Аппаратное обеспечение DirectX 11.1 уже доступно на рынке сегодня, и мы работаем с нашими партнерами, чтобы обеспечить широкую доступность большего числа продуктов с поддержкой TIR.
Я думаю, это была одна из приятных вещей, которую добавила Win 8, которая была в основном потеряна для мира в фиаско UI Metro ...