2010-12-16 119 views
3

我正在尋找一個2D渲染庫作爲iPhone上CoreGraphics的替代品。我的應用程序中的所有內容都非常具有動態性,這使得分層和動畫變得相當困難。CoreGraphics的替代?

我對OpenGL非常熟悉,這就是現在如何實現渲染。但是,如果我不必擔心OpenGL中的低層次的東西,所有東西都可以更容易地擴展,開發速度會更快,而且(我的代碼看起來更整潔:D)。

我更喜歡C++而不是Objective-C,所以如果你知道任何用於渲染的C++庫,那就太棒了。我也可以和C一起工作。基於路徑的渲染,如CoreGraphics或JavaScript Canvas API,將會是有益的。開羅會在iPhone上工作嗎?

我實際上一直在研究我自己的2D渲染器,即使我最終沒有在我的應用程序中使用,我也可能會發布它,因爲我喜歡它。 iPhone是否支持模板緩衝區?我可以做多邊形三角測量,或者使用GLU的tesselation庫,但是模板緩衝區可以長期安全地完成一些工作。

編輯:此外,我已經在此應用程序中使用CoreGraphics實現了渲染,並且它沒有像我期望的那樣得到幀速率的好。我做了一些研究,有人建議不要使用CoreGraphics來不斷重繪屏幕。有人說CoreGraphics不使用GPU,有人說這是一些緩存機制。自那以後我就避免了它。

+0

出於好奇,你有什麼不想使用Core Graphics的原因?只是事實上,它分爲幾層? – 2010-12-16 23:05:59

+0

哦,對。我忘了把它放在我的文章中... – vedosity 2010-12-16 23:07:55

+4

是的,Core Graphics確實渲染了在GPU上緩存爲矩形紋理的矢量繪圖。這個渲染過程相當緩慢,但我認爲你會發現有人在性能上擊敗了蘋果公司,而缺乏完全在OpenGL ES中工作的庫。作爲一個權宜之計,你看過CAShapeLayer,它可以製作矢量圖形的動畫:http://tumbljack.com/post/179975074/complex-interpolation-with-cashapelayer-free? – 2010-12-16 23:35:57

回答

1

MonkVG是OpenVG 1.1的矢量圖形API API實現,目前使用OpenGL ES後端,該後端應與任何支持OpenGL ES 2.0(包括大多數iOS和Android設備)的硬件兼容。

這是一個正在開發中的開源BSD許可項目。在撰寫本文時,它處於非常早期的發佈前狀態(實現了非常少的功能)。貢獻者和贊助商歡迎。

它可以在GitHub上http://github.com/micahpearlman/MonkVG找到

此外,還有建在上面MonkVG的SVG和SWF(閃光)渲染:

MonkSVG MonkSWF