关于drawArrays调用得到不同结果的疑问
来源:3-2 多缓冲区和数据偏移
Mr陈序猿
2024-01-31
示例1:点击鼠标绘制点的时候,没有用points数组的情况下,其执行的代码是:
gl.vertexAttrib2f(aPosition, clickX, clickY)
gl.drawArrays(gl.POINTS, 0, 1);
结果1:每次鼠标点击,都会执行上述代码,如果点击多次,相当于循环执行了多次上述代码,但是最终只绘制一个点
示例2:使用了points情况下,其执行代码是
for (let i = 0; i < points.length; i++) {
gl.vertexAttrib2f(aPosition, points[i].clickX, points[i].clickY)
gl.drawArrays(gl.POINTS, 0, 1);
}
结果2:每次鼠标点击的点都会被绘制出来
疑问:示例1与示例2代码执行流程上面都是先调用vertexAttrib2f然后再调用drawArrays,但绘制的结果却不一样?
写回答
1回答
-
yancy
2024-02-05
应该有其他的话题我回答过。多次点击的时候,每次都是不同的绘制是因为不是同一帧绘制的,而数组循环则是在同一帧里进行的,
012024-03-15
相似问题