这个东西 可以做到GPGPU粒子系统。。我也不知道其他地方怎么应用的 第一次学
gl.createVertexArray创建VAO 填上VBO
然后两个这个feedback =[gl.createTransformFeedback(),gl.createTransformFeedback()]交换用
gl.bindTransformFeedback(gl.TRANSFORM_FEEDBACK,再绑定一个feedback [0])
gl.bindBufferBase来把数据对接上
var i=0
useprogram那些都准备好
render(){
gl.bindVertexArray(VAO);
gl.bindTransformFeedback(gl.TRANSFORM_FEEDBACK, feedback [i]);每次循环完就替换 0 1 0 1 像那个双缓冲
gl.bindBufferBase再次把数据对接上
gl.beginTransformFeedback(gl.POINTS);//这绘制模式和drawArrays模式要对上
gl.drawArrays(gl.POINTS, 0, NUM_PARTICLES);
gl.endTransformFeedback()
i=i+1%2;
}
顶点属性会一直更新 而且不用来回CPUGPU的交换 大概就是这个意思