如何在 ANGLE_instanced_arrays 中使用 gl_InstanceID?

how to use gl_InstanceID in ANGLE_instanced_arrays?

WebGL 1 仅支持 GLSL ES v1.00。支持实例化绘制调用 ANGLE_instanced_arrays 分机。

该扩展非常受欢迎,成为 WebGL 2.0 的一部分 DrawArraysInstance
WebGL 2.0 支持支持内置 gl_InstanceIDgl_VertexID 的更高版本的 GLSL。

然而,由于 WebGL 1 停留在旧的 GLSL 版本,因此不支持这些变量。
但是它们是可以模拟的,或者我希望它们可以!

为了模拟gl_VertexID,我简单地使用了[0, 1, 2, 3, 4, 5, ...]
的数组缓冲区 并将其与 0 的除数绑定,效果很好。

但是,我不知道如何模拟gl_InstanceID

我想我明白了!我可以将另一个属性绑定到 [0, 1, 2, 3, 4, 5, ...] 数组缓冲区,除数为 1

该属性将在每个实例中递增一次,与 gl_InstanceID 相同。