Преобразование векторного изображения Adobe Illustrator в Open GL

Как я могу взять вектор, созданный Adobe Illustrator, и получить точки, необходимые для воспроизведения изображения в вызовах Open GL?

Что я хочу сделать, так это взять некоторые из моих двухмерных рисунков и напрямую создать их в своих программах. Это позволит мне поддерживать любое разрешение, которое мне может понадобиться, сохраняя при этом четкость изображения, и, возможно, также сэкономит немного памяти. Я просто не могу понять, как это сделать. В конечном итоге это пойдет в сторону программирования для Android.


person PearsonArtPhoto    schedule 18.11.2012    source источник


Ответы (2)


OpenGL — не очень хороший API для рисования 2D-иллюстраций векторной графики. Обычно они содержат множество изогнутых участков (безье и/или NURBS), которые необходимо сначала разбить на треугольники, прежде чем их можно будет рисовать с помощью OpenGL.

Есть еще один API, называемый OpenVG, специально созданный для поддержки рисования 2D-векторных иллюстраций. Взаимодействие OpenGL поддерживается некоторыми реализациями OpenVG. А некоторые реализации OpenVG действительно используют OpenGL в качестве серверной части.

Другой вариант, более жизнеспособный в настоящее время, — это использование библиотеки рисования векторной графики, которая использует OpenGL в качестве серверной части. Одной из таких библиотек является Cairo, которая также предоставляет программу для чтения файлов SVG.

Adobe Illustrator (.ai) — проприетарный формат, поэтому я бы не стал его использовать. Однако Illustrator может отлично экспортировать в SVG, а Cairo прекрасно читает и рисует файлы SVG, созданные Illustrator.

person datenwolf    schedule 18.11.2012
comment
Жаль, что ИИ не может сделать это напрямую... Тем не менее, я понимаю причину этого. - person PearsonArtPhoto; 19.11.2012
comment
@Pearsonartphoto: OpenGL — это API для рисования, а не формат графического файла. Нет смысла пытаться хранить графику в виде цепочки команд OpenGL. - person datenwolf; 19.11.2012
comment
Я думаю, для меня это имеет смысл, потому что, по сути, вы рисуете изображение, соединяя отдельные части. Но, может быть, я просто сумасшедший, как это... - person PearsonArtPhoto; 19.11.2012

Используйте командную строку Inkscape для --export-plain-svg в файле Illustrator. Это не идеальное преобразование (особенно шрифтов), но оно выполняет свою работу.

Кто-нибудь знает, есть ли в Cairo что-то похожее на --export-plain-svg, так как Inkscape основан на нем, и он такой низкоуровневый (быстрее)?

person corysimmons    schedule 15.01.2014