我爲iPhone編寫圖形應用程序,我正在尋找將我最近的應用程序「層」移植到Android平臺。圖層是繪畫應用程序,允許用戶在屏幕上繪製並使用不同的畫筆,顏色等創建多層次的繪畫......並輸出到PSD。這是有桌面同步,塗抹工具,很多好東西... http://www.layersforiphone.com/Android OpenGLES渲染到紋理
我開始在星期一看Android平臺,我遇到了一個主要問題。我使用OpenGL來完成所有繪圖,因爲它提供了最佳性能。但是,有幾個地方需要渲染到紋理中,然後使用紋理。例如:
- 使用刷子的質地和精靈的行來創建紋理黑色塗料衝程甲
- 穿戴刷色+α的glColor4f然後繪製紋理阿到屏幕上。
在iPhone上,隨着用戶的手指移動,我可以持續這樣做,我可以在第一代iPod Touch上實現12-15fps。這是必要的,因爲將顏色和alpha應用於構成畫筆描邊的單個精靈並不會產生正確的結果(因爲精靈重疊並且使筆畫太暗)。
Android平臺支持OpenGL ES 1.0,但似乎忽略了處理幀緩衝區的關鍵函數。我無法找到將紋理綁定到幀緩衝區並使用OpenGL進行繪製的方法。
以下是我通常會去了解它在iPhone上:
// generate a secondary framebuffer and bind it to OpenGL so we don't mess with existing output.
glGenFramebuffers(1, &compositingFramebuffer);
glBindFramebuffer(GL_FRAMEBUFFER, compositingFramebuffer);
// attach a texture to the framebuffer.
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texture, 0);
// subsequent drawing operations are rendered into the texture
// restore the primary framebuffer and (possibly) draw the rendered texture
glBindFramebuffer(GL_FRAMEBUFFER, originalActiveFramebuffer);
有沒有這樣的事情在Android平臺上?在iPhone上,OpenGL比基於軟件的繪圖要快得多,而且是唯一可行的解決方案(相信我 - 我也寫了一個CoreGraphics繪畫應用程序......)。也許我可以在Android上採用另一條路線?我願意跳過任何必要的箍環,但我不會發布應用程序,除非性能爲好(當您在屏幕上繪製時爲10fps +)。
剛興趣的人,下面是幾個不同的Android設備的GL_EXTENSIONS: http://www.rbgrn.net/content/345-hands-on-motorola-droid-opengl-es-specs 它看起來像DROID是目前唯一支持幀緩存的Android手機。 – 2009-11-29 17:56:48