zoukankan      html  css  js  c++  java
  • android ms3d优化及其他

    把ms3d移植到android平台上并不是很难,但是1000+个三角形在800MHz的手机上却只能跑到700+ms/f,确实有点泄气。刚开始以为就是硬件慢,后来同事指出800MHz相当于奔三,即使在虚拟机里跑,也不会这么慢。于是就花了几个晚上,优化到了70+ms/f,继续优化的话我只能想到用ndk了。

    总结一下移植以及优化时的经验教训: 

    1. 由于ms3d里相同的顶点坐标有不同的纹理坐标,所以不同的三角形不能共用顶点,用glDrawArrays绘制时会节省一个顶点索引缓存
    2. ms3d里的uv坐标与android里的坐标系统相同,都是以左下角为原点,所以v就不用像opengl中被1减了
    3. 顶点坐标和纹理坐标都用数组存储,用Buffer的wrap方法生成Buffer对象,修改数据时直接修改数组中的值即可(最开始每次更新数据时都是把Buffer清空,重新put,非常慢)
    4. 把多维数组展开成一维数组
    5. 把复杂对象的临时变量(如数组)提成类的静态常量(虚拟机创建/销毁对象以及垃圾回收的消耗还是比较高的)
  • 相关阅读:
    CodeForces Round #545 Div.2
    HDU 2222 Keywords Search
    拓扑排序
    CodeForces Round #553 Div2
    CodeForces Round #552 Div.3
    CodeForces Round #549 Div.2
    #Leetcode# 997. Find the Town Judge
    Educational Codeforces Round 62
    #Leetcode# 524. Longest Word in Dictionary through Deleting
    圆方树小结
  • 原文地址:https://www.cnblogs.com/gg_shily/p/1953884.html
Copyright © 2011-2022 走看看