Как я могу анимировать объект в WebGL (НЕ изменять определенные вершины) полные преобразования)

Хорошо,

Я новичок в 3D-графике и хочу анимировать отдельные определенные вершины в модели (НЕ преобразовывает всю модель) . Мой сценарий в значительной степени основан на учебнике NEHE webgl. В этом руководстве все вершины объекта хранятся в буфере, который инициализируется один раз при первом запуске программы. * Обратите внимание, что вершины содержат массив вершин

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

21
задан Josh Mc 10 September 2013 в 00:27
поделиться