2010-10-29 4 views
7

Я хочу использовать векторную графику в игре OpenGL. Я хочу использовать векторную графику, потому что их можно масштабировать дешево без потери качества.2D Векторный графический рендерер для OpenGL

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

Теперь мне интересно, существует ли библиотека, выполняющая это уже. Есть ли библиотека, которая может загружать векторный графический формат и отображать его с помощью OpenGL?

+0

Если автору не требуется векторная графика OpenGL + 2D одновременно. – tibur

+0

Позвольте мне прояснить, что я хочу. Я хочу загрузить векторный графический файл (например, SVG), мои обычные вызовы OpenGL смешиваются с призывом рисовать векторный графический файл. Я признаю, что другая часть ответила на них частично. – Nathan

+0

Вопрос, связанный Джошем Ли, - это ИМХО, слишком широкая, чтобы дублировать это или даже иметь ответ, который не будет иметь размер буклета ... – Fizz

ответ

2

Я бы ни с чем не стеснялся OpenVG, даже с MonkVG, который, вероятно, является самым современным, хотя и неполным воплощением. Комитет OpenVG сложен в 2011 году, и большинство, если не все реализации, являются отказоустойчивыми или в лучшем случае устаревшим программным обеспечением.

С 2011 года состояние искусства ребенка Марка Kilgard, в NV_path_rendering, который в настоящее время только поставщик (Nvidia) расширение, как вы могли догадаться уже из названия. Есть много материалов на том, что:

NV_path_rendering теперь используется Skia библиотеки Google, за кулисами, если таковые имеются. (Nvidia способствовали код в конце 2013 и 2014 годах)

И ответить на более конкретный вопрос, поднятый в комментариях, вы можете смешать путь рендеринга с другими OpenGL (3D) вещи, как и предназначалась на:

Вы можете, конечно, SVGs нагрузки и такой https://www.youtube.com/watch?v=bCrohG6PJQE. Они также поддерживают синтаксис PostScript для путей.

Выпускной план, имеющий еще меньшую (или совершенно нет) поддержку поставщика или академический блеск NanoVG, который в настоящее время разрабатывается и поддерживается.(https://github.com/memononen/nanovg) Учитывая количество 2D-библиотек поверх OpenGL, которые приходят и уходят со временем, вы делаете большую ставку с использованием чего-то, что не поддерживается крупным поставщиком, по моему скромному мнению.

1

Посмотрите на OpenVG.

+0

Спасибо. OpenVG кажется классным. Но я немного смущен. Это только стандарт, а не библиотека, не так ли? Существует ли (с открытым исходным кодом) ускоренная реализация для Linux и Windows? – Nathan

+0

Ну. Я думал, что была реализация Nvidia. Посмотрите эту тему: [Лучшая реализация OpenVG?] (Http://stackoverflow.com/questions/401422/best-openvg-implementation). – tibur

1

Обсуждение in this Slashdot post об устройствах визуализации для SVG. Я не знаю, кто из них использует OpenGL, если таковые имеются.

This SO question также имеет несколько предложений, в том числе sauvage, который выполняется в Python. Cairo также, по-видимому, возможен.

Существует несколько мощных библиотек, которые визуализируют SVG без OpenGL. Интересно, действительно ли это не так необходимо: возможно, линии рисования на большинстве системных видеокарт уже достаточно ускорены.

Смежные вопросы