Jos*_*ose 7 android opengl-es floatbuffer
我试过用
floatbuffer.put(float[]);
Run Code Online (Sandbox Code Playgroud)
但是当我处理超过200个正方形时,每个帧都有不同的纹理坐标,我的fps急剧下降,游戏变得太过流畅.
你认为badlogicgames.com上提到的方法,而不是使用floatbuffer,使用intbuffer,但是,同样的事情,等于缓慢的方法"put"的那一刻.
那么,我如何以最佳性能更新我所有的浮动缓冲区?
编辑:我已经解决了我的问题,"put"方法本身并不慢,问题是当为每个floatbuffer初始化一个新的float时,而不是那个,我只是更改floatarray中包含的每个元素的值避免许多GC活动..我想.
有多种方法可以提高性能。简而言之,这里有一些:
1) 初始化浮动缓冲区并在每一帧中应用一个变换: - 如果您的方块在屏幕上移动,请将它们放置在浮动缓冲区中一次,然后对每个方块应用单独的矩阵变换。在此方法中,您填充浮动缓冲区一次,然后每轮更新转换。
2) 仅将唯一的形状放入浮动缓冲区中- 如果您的任何方块彼此重复,请每帧调用相同的缓冲区以节省内存。
3) 使用顶点缓冲区对象和索引缓冲区对象- 听起来您可能已经这样做了,但是将数据存储在顶点缓冲区中,并使用数组的索引调用顶点。
如果您仍然遇到问题,我建议您查看本教程:http://www.learnopengles.com/android-lesson-one-getting-started/
| 归档时间: |
|
| 查看次数: |
2006 次 |
| 最近记录: |