我目前正在使用SDK GLES10开发一款Android游戏,而且我在三星Galaxy Ace等不太好的手机上遇到了一些性能问题。所以我考虑将它移植到NDK,也可能使它使用GLES20,至少是渲染部分,它占用了最多的CPU时间。
(在Galaxy S2上它以恒定的61 FPS运行,在Galaxy Ace上它在90到20 FPS之间变化并且在大多数情况下都是口吃的)
Galaxy S2和Galaxy Ace上的大多数CPU时间采集方法都是GLES10.glDrawElements()
,GLES10.glVertexPointer()
和GLES10.TexCoordPointer()
。比如Ace上使用的总CPU时间的85%和S2上的82%。
是否会将性能大幅提升为1.使用NDK进行渲染并将其移植到GLES20?
答案 0 :(得分:1)
这可能只取决于你已经在做什么。
我希望找到特定的瓶颈。说“渲染”是一个瓶颈,实在太模糊,无法发挥作用。
究竟是什么阻碍了你?
取决于你的GPU是否是限制因素,取决于使用NDK的答案可能有所帮助,或者它可能根本没有帮助。
NDK可能会帮助您以较少的开销调用GPU,但您不知道这是否真的阻止了您。
如果你还没有尝试使用DDMS跟踪视图,并且看看你的大部分时间在哪里,那么你可以在经历重大改写的麻烦之前做出明智的决定。