2011-04-25 74 views
0

我有一个游戏引擎,但它非常慢。我在星系s上获得了大约30-40个FPS的纹理方块(2个三角形与混合)。这是一个动态壁纸。我得到我的传说80个项目上只有10-20 FPS ...Android OpenGL-ES 3D游戏优化

我使用VBO的,剔除和其他优化。 (我尝试过纹理图集,与绑定纹理的速度相同...)

我该怎么做?

1,如果我使用本地opengl渲染代码,那会加速我的渲染速度? 2,如果我使用PVRTC压缩纹理,而不是png-s,那会加速渲染速度?我该怎么做?

我该怎么办?

回答

1

是的......我相信如果您切换到使用OpenGL的NDK,您应该看到显着的加速。至于PVRTC ......我不是100%确定是否要走这条路。这是一种针对PowerVR芯片组进行了优化的格式...所以是的...这对于Galaxy S各种手机来说都是非常棒的......但是每个配备Snapdragon处理器的手机都会运行不同的GPU(Adreno)。我不知道Adreno GPU是否能够很好地利用它。

+0

好吧,我看到了不同的压缩,但第一:我怎么可以在opengl中加载.pvr纹理?它是特别的吗? – lacas 2011-04-25 15:50:40

+0

不幸的是,我不确定。但是由于很多手机不支持GL_IMG_texture_compression_pvrtc gl扩展......我坦率地说明了一点。不过,您应该了解的所有内容都将放在PowerVR SDK中。谷歌,你应该拥有它。 – Maximus 2011-04-25 16:12:00

1

据我所知,没有GPU在本机上支持PNG图像作为纹理格式。它们总是通过API /驱动程序解压到ARGB(可能@ 32bpp),所以在内存空间,更重要的是带宽消耗方面将会受到打击。对于应用程序和闪存存储空间的分配来说,PNG确实只会降低您的成本。

如果您对图像质量没有疯狂的执着,那么使用某种形式的(有损)纹理压缩,比如说PVRTC(4bpp或2bpp)或者ETC(4bpp)可能会赢得性能。