Создание объекта

Прежде чем мы будем выполнять рендеринг при помощи буферов, мы должны их создать и загрузить данные вершин и индексы в соответствующие буферы.

function initBuffers() {
  squareVerticesBuffer = gl.createBuffer();
  gl.bindBuffer(gl.ARRAY_BUFFER, squareVerticesBuffer);

  var vertices = [
    1.0,  1.0,  0.0,
    -1.0, 1.0,  0.0,
    1.0,  -1.0, 0.0,
    -1.0, -1.0, 0.0
  ];

  gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW);
}

Переменная squareVerticesBuffer будет хранить вершинный буфер, который был создан функцией createBuffer().

Команда bindBuffer() служит для того, чтобы сделать заданный буфер текущим. Стоит обратить внимание, что не обязательно вызывать createBuffer() для получения имени буфера перед его привязыванием через bindBuffer(). Вместо этого приложение может передать bindBuffer() неиспользуемое имя буфера.

Само хранилище для данных создаётся и инициализируется при помощи функции bufferData(). Первый параметр сообщает о типе буфера. Второй параметр должен быть JavaScript массивом, содержащим данные о каждой вершине. Третий параметр сообщает о том, как приложение собирается использовать данные в этом буфере.

  < НАЗАД | ДАЛЕЕ >