簡體   English   中英

在Android中將VBO與OpenGL ES一起使用時性能不佳

[英]Bad performance using VBO with OpenGL ES in Android

我正在制作一個Android應用程序,需要使用OpenGL ES繪制一些形狀。 我能夠渲染它們,但是我對性能感到失望。 我更新了代碼以使用VBO,但沒有發現任何改進。 我想以每秒60幀的速度渲染(每幀16毫秒)。

我有一個測試項目,在屏幕上渲染了幾個三角形。 當我渲染1000個三角形時,每幀大約需要20毫秒 (取決於設備)。

我想將渲染時間保持在10毫秒以內,因為我需要剩下的時間( 6毫秒 )來執行其他計算(例如更新位置,檢測碰撞等)。

這是我渲染三角形的代碼:

https://github.com/mauriciotogneri/test/blob/master/src/com/testopengl/Polygon.java#L51-66

這是遍歷三角形的代碼:

https://github.com/mauriciotogneri/test/blob/master/src/com/testopengl/MapRenderer.java#L117-139

(更改NUMBER_OF_TRIANGLES的值以顯示更多三角形)

據我了解,如果我需要每幀調用1000次(每個三角形一個 ,則GLES20.glDrawArrays(...)方法會花費太多時間。

有沒有其他方法可以渲染幾個不需要太多的多邊形?

筆記:

  • 在該示例中,所有三角形在屏幕上均具有固定位置,但在實際情況下,它們會四處移動
  • 在示例中,我為每個三角形分配了隨機的顏色,但在實際情況下,每個三角形將具有固定的顏色

將您的位置/顏色/法線...放在一個VBO對象中,並在一個調用中繪制它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM