На webgl gl_VertexID влияет смещение drawArrays? - PullRequest
0 голосов
/ 18 января 2019

Когда drawArrays вызывается со смещением («первый» аргумент не равен нулю), первый gl_VertexID все еще начинается с 0 или начинается со значения смещения?

1 Ответ

0 голосов
/ 18 января 2019

обновление

Это похоже на ошибку в ANGLE в Windows. Подана ошибка

https://github.com/KhronosGroup/WebGL/issues/2770


Давайте попробуем

[...document.querySelectorAll('canvas')].forEach((canvas, ndx) => {
  const vs = `#version 300 es
  void main() {
    gl_Position = vec4(float(gl_VertexID) / 10., 0, 0, 1);
    gl_PointSize = 10.0;
  }`;
  const fs = `#version 300 es
  precision mediump float;
  out vec4 outColor;
  void main() {
    outColor = vec4(1, 0, 0, 1);
  }`;
  const gl = canvas.getContext('webgl2');
  if (!gl) {
    return alert('need webgl2');
  }
  const prg = twgl.createProgram(gl, [vs, fs]);
  gl.useProgram(prg);
  gl.drawArrays(gl.POINTS, ndx * 5, 5);
});
canvas {border: 1px solid black;}
<script src="https://twgljs.org/dist/4.x/twgl.min.js"></script>
<canvas></canvas>
<canvas></canvas>

Похоже, ответ начинается со значения смещения.

...