我需要在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 2.0渲染到具有透明背景的纹理
- 3. OpenGL ES 1.1不会渲染纹理?
- 4. 在OpenGL ES中渲染纹理
- 5. OpenGL ES:预渲染为FBO纹理
- 6. OpenGL ES 2.0渲染为多个纹理
- 7. OpenGL ES,你如何渲染PVR纹理?
- 8. OpenGL渲染纹理
- 9. OpenGL ES iPhone纹理
- 10. 将字符串渲染到Android和OpenGL ES中的纹理
- 11. 如何让X渲染成OpenGL纹理?
- 12. 从单个OpenGL ES纹理渲染多个精灵
- 13. 的Cocos2D-X 3.8 - 渲染纹理,OpenGL的不渲染
- 14. 背景线程渲染纹理
- 15. iPhone OpenGL ES:什么是最快的纹理模式?
- 16. OpenGL ES渲染位图字形作为纹理定位问题
- 17. 在Unity项目中使用OpenGL ES进行纹理渲染
- 18. Opengl ES - 有没有加快渲染速度的方法?
- 19. 将OpenGL FBO纹理渲染到GLXPixmap
- 20. OpenGL渲染纹理透明度问题
- 21. OpenGL ES 2.0 - 渲染到纹理全是黑色
- 22. 的OpenGL ES 2.0:在纹理
- 23. iPhone的OpenGL-ES视频纹理
- 24. OpenGL ES 2.0渲染到纹理坐标系
- 25. 如何在OpenGL ES 2.0中使用2D纹理渲染3d纹理数据?
- 26. AIDE-ide中的opengl es 3.0 - 渲染纹理返回空白纹理
- 27. 在iOS上渲染大纹理OpenGL
- 28. OpengL ES /角度:渲染为单通道浮动纹理
- 29. OpenGL ES 2.0纹理
- 30. 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