渲染分离的随机三角形的最有效方法是什么?

时间:2015-05-28 16:36:04

标签: javascript webgl

https://dl.dropboxusercontent.com/u/75048835/triangles2/index.html

这是每个框架脚本的作用:

  • 获取滑块值
  • 如果更改了滑块值,请为顶点创建一个Float32Array,并为其调整大小的颜色创建一个
  • 运行一个循环,每次迭代都会为数组添加一个新的三角形, 随机X,Y,RGB和alpha值
  • 使用gl.drawArrays绘制数组

问题是,当我使用800多个三角形时,我无法获得合适的帧率。有没有办法让这更快?

Source code here

2 个答案:

答案 0 :(得分:1)

尝试使用glBufferSubData而不是glBufferData。 glBufferData每次调用时都需要分配一个新的缓冲区。应该会看到很大的性能提升。

答案 1 :(得分:0)

检查您使用的变量是否尽可能位于本地,因此不会继续引用它们,从而占用记忆。在页面生命周期内,垃圾收集器不会清除全局变量。

本文可能会有所帮助:http://www.smashingmagazine.com/2012/11/05/writing-fast-memory-efficient-javascript/