我目前正在調查從使用OpenGL和OpenGL ES SVG文件渲染矢量圖形的可能性。我打算針對Windows和Android。我的理想解決方案是擁有一個最小的C庫,可以從給定的SVG文件生成多邊形三角剖分。這會生成標準的OpenGL或OpenGL ES調用,並在重繪時使用顯示列表或vbo進行優化。我只需繪製一個顯示列表,在翻譯和旋轉後繪製矢量圖像,以便將其與其他OpenGL調用混合使用。渲染SVG支持OpenGL(和OpenGL ES)
到目前爲止,我看到的建議是首先使用QT或開羅。 - 這不是一個選項,因爲我希望管理自己的OpenGL上下文,而不需要膨脹的庫(在我嘗試實現的上下文中)。這也不適用於Android。
第二種選擇是使用渲染到紋理的庫。雖然這對靜態矢量圖形來說可能是好的,但對於經常出現縮放和旋轉的遊戲來說,這並不是一種有效或可行的選擇。
第三,有可能使用OpenVG。 OpenVG規範有一些開源實現(ShivaVG等),但我還沒有找到一個能夠在運行時從給定的SVG文件生成相應OpenVG調用的庫,並且我無法看到如何將其優化爲我們可能希望用顯示列表或vbo。
所有三種方法都受到限制。如果沒有其他解決方案存在,我認爲最有希望的選擇是使用OpenVG實現。所以我的問題是,有沒有圖書館可以做我想要的,或接近我想要的?如果不是,有沒有充分的理由爲什麼不呢?試圖從頭開始做這件事情會更好嗎?
解析路徑的svg文件並不困難。檢查以下繪製二次貝塞爾曲線。 //www.opengl.org/resources/code/samples/redbook/bezcurve.c – 2011-06-09 06:51:35
@Grady glEvalCoord在OpenGL ES中不存在;而GLU,它的鑲嵌器也不重要,例如凸多邊形。 @ me232很好的問題,upvote'd&favorite'd – Calvin1602 2011-06-09 08:29:02
+1良好的研究和很好的框架問題 – 2011-06-09 10:19:42