drawArrays 第三个参数如何控制?

来源:3-1 使用缓冲区对象 - 绘制多个点

Bizarre_Lion

2023-10-30

	/* ==========省略上半部分 ======== */
    draArray.push(clickX)
    draArray.push(clickY)
    console.log('依次传入多个点坐标[x,y,x,y,x,y]', draArray)
    let points = new Float32Array(draArray)
    // 创建缓存区
    const buffer = gl.createBuffer()
    // 绑定到webgl上
    gl.bindBuffer(gl.ARRAY_BUFFER, buffer)
    // 将数据写入缓存区
    gl.bufferData(gl.ARRAY_BUFFER, points, gl.STATIC_DRAW)
    // 指定给了attrib 变量。
    gl.vertexAttribPointer(aPosition, 2, gl.FLOAT, false, 0 , 0 )
    // 开启attribute 变量
    gl.enableVertexAttribArray(aPosition)
    // 绘制 : 第三个参数,如果我不确定绘制几个,drawArrays 第三个参数如何控制啊
    gl.drawArrays(gl.POINTS, 0, 1000)


老师,我拿前面鼠标控制案例改的,第一个我一直点击,然后将x,y 推入draArray中,然后使用new Float32Array ,写入缓存区。
我不知道每次点击了多少个,存了多少个点了,这样的话,我gl.draArray 的第三个参数如何控制呢?

写回答

1回答

yancy

2023-11-01

使用数组的length即可

0
0

WebGL+Three.js 入门与实战,系统学习 Web3D 技术

前端的技术蓝海,涨薪好选择

1081 学习 · 294 问题

查看课程