如何获取 Adobe Illustrator 生成的矢量并获得在 Open GL 调用中再现图像所需的点?
我想做的是拿一些我的二维艺术品,并直接在我的程序上制作它。这将使我能够支持我可能需要的任何分辨率,同时看起来仍然清晰,并且可能还节省一些内存。我只是不知道如何实现它。最终,这将转向 Android 编程。
如何获取 Adobe Illustrator 生成的矢量并获得在 Open GL 调用中再现图像所需的点?
我想做的是拿一些我的二维艺术品,并直接在我的程序上制作它。这将使我能够支持我可能需要的任何分辨率,同时看起来仍然清晰,并且可能还节省一些内存。我只是不知道如何实现它。最终,这将转向 Android 编程。
OpenGL 不是一个很好的绘制 2D 矢量图形插图的 API。这些通常包含许多弯曲的补丁(Bezier 和/或 NURBS),必须先将其分解为三角形,然后才能使用 OpenGL 绘制它们。
还有另一种 API,称为 OpenVG,专门用于支持绘制 2D 矢量插图。一些 OpenVG 实现支持 OpenGL 交互。并且一些 OpenVG 实现确实使用 OpenGL 作为其后端。
另一种选择也是目前更可行的方法是使用矢量图形绘图库,它使用 OpenGL 作为后端。其中一个库是Cairo,它还提供了 SVG 文件的阅读器。
Adobe Illustrator (.ai) 是一种专有格式,所以我宁愿不使用它。但是 Illustrator 可以很好地导出到 SVG,Cairo 确实可以很好地读取和绘制 Illustrator 生成的 SVG 文件。
Use Inkscape's command line to --export-plain-svg
on the Illustrator file. It's not a perfect conversion (particularly fonts) but it gets the job done.
Anyone know if Cairo has something similar to --export-plain-svg
since Inkscape is based off of it and it's so low-level (faster)?