Я делаю игру и хочу использовать векторную графику. Я начал перекодировать его, используя Cairo, и производительность ужасна. Итак, я ищу другую библиотеку. Он должен быть для C ++ и кроссплатформенным (например, без Direct2D). Есть еще один вопрос, который кто-то задавал ранее, но не было подходящих ответов. Там должно быть что-то ...?
9
Ответы:
Я боюсь, что тема довольно сложная, кажется, что появилось несколько мультиплатформенных решений, и еще меньше, похоже, выжили сами по себе. Я изучал эту тему несколько месяцев назад. У меня было ограничение, так как мне нужен был движок для iOS и Android. В то время не нашел ничего подходящего мне.
Но несколько указаний из того, что я помню: каждая система с графическим интерфейсом имеет ту или иную форму рисования API. Так что вы можете найти что-то интересное в кроссплатформенных, таких как QT .
Эквивалентом cairo будет AntiGrain. Вы можете сравнить производительность.
OpenFrameworks поддерживает векторную графику.
Очень большая библиотека, которая имеет некоторую поддержку векторной графики - и язык, посвященный ей - это ImageMagick .
На нижнем уровне вы найдете Libxmi и Libart из проекта gnome.
Не высокоуровневый API - и я не уверен, какие шансы вам это подойдут - но есть стандарт OpenVG . Существует несколько портов OpenVG поверх программных рендереров OpenGL и OpenGL ES. Mesa 3D также имеет реализацию OpenVG. Но для некоторых платформ будут доступны только коммерческие решения.
Есть несколько библиотек более высокого уровня, которые интегрируют API для векторной графики. Среди них есть открытый исходный код Clutter для дизайна графического интерфейса, который используется в серьезном игровом дизайне, есть масштабная форма (не с открытым исходным кодом). Этот игровой движок имеет несколько функций для рисования векторной графики: 2DEngine
РЕДАКТИРОВАТЬ : беспорядок использует Каир, по-видимому.
источник
MonkVG - это кроссплатформенная эмуляция OpenVG поверх OpenGL ES 1.1 и 2.0. Смотрите: https://github.com/micahpearlman/MonkVG
Примечание. Я являюсь первоначальным автором и сопровождающим этой библиотеки. У него очень либеральная лицензия BSD.
источник
Я закончил тем, что не стал беспокоиться и просто начал работать с изображениями в высоком разрешении и масштабировать с помощью OpenGL. Это работает достаточно хорошо для моей ситуации.
источник