Попытка загрузить изображения из массива

#webgl

Вопрос:

Я загрузил координаты 2 фигур в массив и пытаюсь загрузить их в проект GLSL. Каждый раз, когда я пытаюсь запустить код, я получаю сообщение об ошибке «включенный массив вершин не имеет буфера». Не могли бы вы, пожалуйста, взглянуть на приведенный ниже код и сказать мне, что я делаю не так. Массив называется геометрией.

 vertexShaderCode = `
precision highp float;

attribute vec3 position;
attribute vec3 color;

varying vec3 fragColor;

void main(void)
{
  gl_Position = vec4(position,1.0);
  fragColor = color;
}

fragmentShaderCode = `
precision highp float;

// Uniform variables are constant over image
uniform float time;
uniform vec2 viewport;

varying vec3 fragColor;

void main()
{
  gl_FragColor = vec4(fragColor, 1.);
}

vertexBuffer = {
  const buffer = gl.createBuffer();
  gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
  gl.bufferData(
    gl.ARRAY_BUFFER,
    geometry,
    gl.STATIC_DRAW
    );

  invalidation.then(() => gl.deleteBuffer(buffer));
  return buffer;
}

{
  const FLOAT_SIZE = Float32Array.BYTES_PER_ELEMENT;
  
  const positions = gl.getAttribLocation(program, "position");
  gl.vertexAttribPointer(positions, 2, gl.FLOAT, false, FLOAT_SIZE * 5, 0);
  gl.enableVertexAttribArray(positions);

  const colors = gl.getAttribLocation(program, "color");
  gl.vertexAttribPointer(colors, 3, gl.FLOAT, false, FLOAT_SIZE * 5, 2);
  gl.enableVertexAttribArray(colors);
}

function draw() {
  gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
  gl.drawArrays(gl.TRIANGLES, 0, 18);
}
 

Комментарии:

1. вы создаете и привязываете буфер для позиций вершин, но не для цветов.