Мой ответ будет касаться отображения векторной графики с OpenGL в целом, потому что все решения этой проблемы могут поддерживать тривиально SVG, в частности, хотя ни одно не поддерживает анимированные SVG (SMIL).Поскольку ничего не было сказано об анимации, я предполагаю, что этот вопрос подразумевает только статические SVG.
Во-первых, я бы не стал беспокоиться ни о чем OpenVG, даже о MonkVG, который, вероятно, является самой современной, хотя и неполной, реализацией.Комитет OpenVG был свернут в 2011 году, и большинство, если не все реализации, являются заброшенными или, в лучшем случае, устаревшими программами.
С 2011 года современное состояние принадлежит ребенку Марка Килгарда, NV_path_rendering , чтов настоящее время только расширение поставщика (Nvidia), как вы уже догадались, по его названию.Об этом много материалов:
Конечно, вы можете загружать SVG и такие https://www.youtube.com/watch?v=bCrohG6PJQE. Они также поддерживают синтаксис PostScript для путей.Вы также можете смешивать рендеринг пути с другими материалами OpenGL (3D), как показано ниже:
NV_path_rendering isтеперь используется библиотекой Google Skia за кулисами, если доступно.(Nvidia предоставила код в конце 2013 и 2014 годов.) Один из разработчиков cairo (который также является сотрудником Intel), похоже, тоже ему нравится http://lists.cairographics.org/archives/cairo/2013-March/024134.html,, хотя я еще не знаю о каких-либо конкретных усилияхдля cairo использовать NV_path_rendering.
NV_path_rendering имеет некоторые незначительные зависимости от фиксированного конвейера, поэтому это может быть немного неудобно для использования в OpenGL ES.Эта проблема задокументирована в официальном расширении, указанном выше.В качестве обходного пути посмотрите, например, что сделал Skia / Chromium: https://code.google.com/p/chromium/issues/detail?id=344330
Выскочка, имеющая еще меньшую (или прямую нет) поддержку поставщиков или академический блеск, - NanoVG , которая в настоящее время разрабатываетсяи поддерживается.(https://github.com/memononen/nanovg) Учитывая количество 2D-библиотек в OpenGL, которые приходили и уходили со временем, вы делаете большую ставку, используя что-то, что не поддерживается крупным поставщиком, по моему скромному мнению.