Использование нескольких наборов дескрипторов и более унифицированных обновлений - c++


1

Я только начал изучать вулканы и просматривал несколько учебников/образцов, и я что-то замечаю: каждый использует 1 структуру для равномерной загрузки, содержащую все соответствующие данные (модель, представление, матрица проекций и т.д.). Эти структуры обновляются каждый кадр ПОЛНОСТЬЮ.

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

Источник
  •  28
  •  1
  • 15 мар 2020 2020-03-15 18:59:34

1 ответ

2

Большинство демо/примеров кода ленивы. Как правило, это позволяет избежать чрезмерного усложнения кода с концепциями, которые не нужны для результата.

Кроме того, демо обычно имеет 1 вызов рисования (только рендеринг одной модели), поэтому нет необходимости изменять наборы дескрипторов в них.

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