2009-08-26 40 views

回答

3

我相信你會受益於使用texture atlas,一個巨大的質地,包含所有的較小的紋理。對於iPhone上的OpenGL ES,Apple recommends,您將所有可以一次繪製的頂點放置在頂點緩衝區對象(VBO)中,並且交替緩衝區內的頂點,常規,顏色和紋理信息(在該訂單)。請注意,VBO本身不會爲原始iPhone上的標準陣列提供顯着的性能提升,但3GS具有硬件VBO支持。

通過將數據分組到VBO或數組中,當我減少繪製調用次數時,我發現在應用程序中有顯着的性能改進。

另一個可能需要考慮的方面是減小几何體的大小。通過從GLfloat轉到GLshort獲取頂點和常規座標數據,我發現iPhone 3G上的OpenGL ES渲染速度提高了30%以上。

+1

此外,它可能是值得檢查這個演示文稿ngmoco:iPhone的OpenGL優化技術的概述 - http://gamemakers.ngmoco.com/post/111712416/ stanford-university-and-apple-kind-kind-to- – Dave 2009-08-27 13:08:10

+0

同意。在調整OpenGL ES時,這是一個很好的演示。 – 2009-08-27 18:07:35

1

TBH你最好用獨立的繪製調用。績效不太可能受到明顯影響。

有「可能」的方法來通過索引到一個卷紋理(或紋理陣列)的切片,但你需要3GS做到這一點,它不會在舊的iPhone上工作。我也懷疑你這樣做會有明顯的性能提升。

+0

+1,但TBH是什麼意思? – 2009-08-26 21:17:45

+0

說實話。 – 2009-08-26 21:19:19

+0

哦,哈哈,互聯網俚語在我的部分失敗;-) – 2009-08-26 21:21:44