Вулкан, тот же Uniform Buffer для нескольких объектов? - PullRequest
0 голосов
/ 22 января 2019

Я изучаю API Vulkan и столкнулся с небольшой «проблемой»:

В настоящее время моя программа может рисовать, используя матричное преобразование «Проекция-Вид-Модель», куб в начале координат:

Я использую 3 images / imageViews / framebuffers, поэтому для каждой матрицы преобразования у меня есть вектор размером 3, который их содержит, и все работает идеально (без ошибок из слоев проверки и т. Д.) ... проблема в том, что:

Теперь я хочу нарисовать другой объект рядом с моим кубом, поэтому я подумал, что мне просто нужно обновить матрицу модели дважды в каждом кадре, первый раз для позиционирования куба, второй раз для другого объекта, но это не может работать, потому что куб регистрируется не сразу при регистрации буфера команд, а при его отправке, поэтому в конце буфер команд просто использует второе обновление матрицы модели как для куба, так и для другого объекта:

Как справиться с этой ситуацией?

Спасибо.

1 Ответ

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

Увеличьте размер унифицированного буфера, поместите вторую матрицу после первой и укажите на втором рисунке правильное смещение в унифицированном буфере.

Вы можете использовать как отдельные дескрипторы, так и динамические смещения.

...