Как использовать gl_InstanceID в ANGLE_instanced_arrays? - PullRequest
1 голос
/ 04 ноября 2019

WebGL 1 поддерживает только GLSL ES v1.00 . Вызовы Instanced Draw поддерживаются с расширением ANGLE_instanced_arrays .

Расширение было настолько популярным, что стало частью WebGL 2.0 DrawArraysInstance .
В WebGL 2.0 есть поддержкаболее поздние версии GLSL, которые поддерживают встроенные gl_InstanceID и gl_VertexID.

Однако, поскольку WebGL 1 застрял в старой версии GLSL, эти переменные не поддерживаются.
Но они могут быть смоделированы, или я надеюсь, что они могут!

Для имитации gl_VertexIDя просто использую Array Buffer [0, 1, 2, 3, 4, 5, ...],
и связываю его с делителем 0, это хорошо работает.

Однако я не знаю, как имитировать gl_InstanceID.

1 Ответ

1 голос
/ 04 ноября 2019

Я думаю, я понял это! У меня может быть другой атрибут, связанный с [0, 1, 2, 3, 4, 5, ...] Array Buffer, с делителем 1.

Этот атрибут будет увеличиваться один раз за экземпляр, так же как gl_InstanceID.

...