好的,
我是 3D 图形的新手,我想为模型中的单个特定顶点设置动画(不是整个模型变换)。我的脚本主要基于 NEHE webgl 教程。在本教程中,所有对象顶点都存储在缓冲区中,该缓冲区在程序第一次运行时初始化一次。下面是初始化代码: *注意 vertices 包含一个顶点数组
vertexBuffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW);
vertexBuffer.itemSize = 3;
vertexBuffer.numItems = parseInt(vertices.length/vertexBuffer.itemSize);
现在因为这些是在开始时初始化的,显然更改顶点数组将无济于事。所以我想知道如何在实时修改顶点的同时保持足够高效以平稳运行的最佳方法是什么。
是否可以以某种方式重新绑定缓冲区,例如在每个动画滴答时再次运行此代码?
gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW);
干杯,J