2016-06-11 145 views
1

我有許多小圖像,並且這些圖像可以合併爲一個大圖像。 現在,我使用VBO來做到這一點,它是有效的。部分渲染功能是這樣的:使用JOGL渲染很多紋理vbo使用JOGL

for (int i = 0; i < mListTexData.size(); i++) { 
    gl.glBindTexture(GL2.GL_TEXTURE_2D, mTexturesIDs.get(i)); 
    gl.glDrawArrays(GL2.GL_QUADS, i*4, 4); 
} 

我不知道是否有更方便的方法來做到這一點。 Thx。

+0

多少?他們都是一樣的大小?他們會被修改還是永遠保持不變? – elect

+0

該數字不固定。也許有數百張圖片。不,它們不是,可能會被其他圖像取代。替換圖像時應該修改頂點.Thx for reply – Yipx

+0

您是否只有相對較小數量的不同尺寸? – elect

回答

0

你有多種可能性:

  • 使用一本地圖冊,一個大的質感,你必須內所有的小紋理,像this。你當然可以更新它,這是覆蓋(的一部分)。 臨:一個獨特的權威紋理綁定 缺點:必須計算每個子圖像

  • 可以使用一對夫婦紋理數組,每個不同大小的所有紋理座標。然後,您將選擇具有統一變量或頂點屬性的正確圖像。 Pro:很少紋理綁定。 缺點:如果必須刪除紋理,則必須銷燬它(您可能希望創建具有硬編碼長度的紋理陣列)

  • 您簡單地繼續按照您已經在做的操作。 Pro:最簡單的方法。我強烈建議你開始這樣。配置文件,找出這是否是一個瓶頸,如果是的話,改進。 缺點:可能會根據您的情況

詩是低效:GL_QUADS已被棄用,使用純GL_TRIANGLES