我需要在OpenGL ES中顯示480 x 320背景圖像。事情是,當我使用512 x 512紋理尺寸時,我經歷了iPhone的減速。所以我找到了在OpenGL ES中渲染iPhone分辨率大小背景的最佳案例。在這種情況下,我應該如何分割背景以獲得最佳性能?我主要關心的是速度。我應該在這裏使用256 x 256或其他紋理尺寸嗎?以iPhone OpenGL ES紋理渲染480 x 320背景的最快方法
4
A
回答
7
首先,您是否在模擬器上測試性能?如果是這樣,立即停止並嘗試在實際的硬件上。 模擬器上的性能測試毫無價值。
有了這樣的方式,我不知道你有多少的這些已經實施,所以我道歉,如果我給你什麼你已經知道:
- 如果」重新繪製全屏不透明的背景每一幀,你可能不需要
GL_CLEAR
呼叫- gmaclachlan指出你應該明確每個運行性能方面的原因緩衝區,但是這是違背其他一些用戶體驗。這可能在硬件和iOS版本之間有所不同;然而,性能可以通過評論該行來進行測試。檢查前後。
- 如果您在使用Z軸在所有(即:在一個2D的背景,認爲3D對象新超級馬里奧兄弟)你將要清除深度緩存
- 使用紋理壓縮( PVRTC)如果壓縮文物是不是 問題,它的硬件加速
- 使用16位紋理背景,如果你不能使用PVRTC
- 確保您沒有試圖深度測試/α-如果下面沒有任何東西,請將背景混合起來
- 如果你正在使用 固定功能
int rect[4] = {0, 0, 480, 320};
glBindTexture(GL_TEXTURE_2D, texBackground);
glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_CROP_RECT_OES, rect);
glDrawTexiOES(0, 0, z, 480, 320);
除此之外
使用OES_Draw_Texture擴展,嘗試抓住你的代碼的只是部分,只是看如何許多背景每秒它能夠吐出。
相關問題
- 1. OpenGL ES渲染到紋理
- 2. OpenGL ES紋理不渲染
- 3. OpenGL ES 2.0渲染到具有透明背景的紋理
- 4. OpenGL ES渲染到非POT紋理
- 5. OpenGL ES 1.1不會渲染紋理?
- 6. 在OpenGL ES中渲染紋理
- 7. OpenGL ES:預渲染爲FBO紋理
- 8. OpenGL ES 2.0渲染爲多個紋理
- 9. OpenGL ES,你如何渲染PVR紋理?
- 10. OpenGL渲染紋理
- 11. Opengl ES紋理渲染概念
- 12. OpenGL ES 2紋理渲染黑色
- 13. OpenGL ES iPhone紋理
- 14. 將字符串渲染到Android和OpenGL ES中的紋理
- 15. 如何讓X渲染成OpenGL紋理?
- 16. 從單個OpenGL ES紋理渲染多個精靈
- 17. OpenGL - PBuffer渲染到紋理
- 18. 將4k視頻呈現爲OpenGL ES紋理的最快方法?
- 19. OpenGL ES 1.1 2D紋理紋理iPhone
- 20. 的Cocos2D-X 3.8 - 渲染紋理,OpenGL的不渲染
- 21. 在OpenGL ES 2.0中渲染紋理時的抗鋸齒
- 22. OpenGL - 渲染成紋理
- 23. iPhone OpenGL ES:什麼是最快的紋理模式?
- 24. OpenGL渲染紋理不清
- 25. 背景線程渲染紋理
- 26. opengl:渲染紋理出錯
- 27. Opengl GLSL渲染紋理
- 28. OpenGL如何渲染背景
- 29. OpenGL ES渲染位圖字形作爲紋理定位問題
- 30. 在Unity項目中使用OpenGL ES進行紋理渲染
只需要注意:在這個硬件上使用glClear()函數始終是一個好主意(即使您要完全覆蓋整個幀) - 這意味着驅動程序無需知道信息與前一幀保持一致,並保存所有涉及的工作。 – gmaclachlan 2010-09-22 10:15:53
爲什麼它會保存任何內容,除非你指定kEAGLDrawablePropertyRetainedBacking = YES?我試着使用儀器測試(在硬件上),發現使用glClear比沒有使用更多的利用率。 – v01d 2010-11-15 05:59:00
@gmaclachlan,@ v01d:你使用的是哪些iOS版本和硬件?我用原始iPhone(最低公分母)和3.0.0的目標平臺達到了我的GL_CLEAR結論。由於glClear行很簡單,可以評論/取消評論,所以值得用兩種方法來測試它是否有效。另外還增加了一些關於3D-2D的內容,以及如果需要清除深度的要求。 – 2010-11-16 20:21:55