OpenGL возможно ли иметь два активных VAO одновременно?

Так что я недавно узнал о VAO (объект Vertex Array), и пока они кажутся довольно удивительными, но у меня есть проблема, которую я не могу решить. У меня есть куча моделей, их состояния вершин хранятся в отдельных VAO, поэтому один вызов

    glBindVertexArray(VAO);

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

    glDrawElementsInstanced();

вызов. Таким образом, он содержит данные, такие как смещение, UV-смещение, наложение цвета и т. Д. Когда я связываю это, предыдущий, кажется, сам себя не связывает, что, я думаю, имеет смысл в OpenGL, но я не уверен, что делать, чтобы оба активных ?

Идея состоит в том, чтобы нарисовать все статические объекты, которые используют одну и ту же модель, без загрузки данных за кадр. Это неправильный подход полностью?

0

Решение

Когда я связываю это, предыдущий, кажется, сам развязывается, что имеет смысл в OpenGL, я думаю, но я не уверен, что делать, чтобы оба были активны?

Конечно, это развязывает. Вот как работает OpenGL. Это конечный автомат, и вы хотите иметь два активных состояния одновременно.

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

Если они не меняются, то не меняйте их. Вы просто должны связать и активировать компоненты вершины (как объяснено Вот).

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]