Хорошо,
Я новичок в 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);
Привет, Дж.