#108 Косвенный рендеринг, отброс невидимого LOD, часть 9 vkCmdDrawIndexedIndirect подробно
00:00 Введение в VKCMD draw indexed indirect • Обсуждение важности функции VKCMD draw indexed indirect в компьютерной графике. • Функция позволяет контролировать рисование непосредственно на графическом процессоре, избегая взаимодействия с центральным процессором. • Это даёт значительный прирост производительности. 01:42 Преимущества косвенного множественного рисования • При наличии функции косвенного множественного рисования можно отправить одну команду для рисования всех объектов. • Без этой функции приходится отправлять отдельную команду для каждого объекта, что неэффективно. • В игре с 31 000 объектами это приводит к значительным затратам времени и ресурсов. 03:36 Внутреннее устройство графического процессора • Графический процессор должен перебирать данные в буфере для отображения объектов. • При отправке каждой команды графический процессор должен повторно обрабатывать данные. • Это приводит к задержкам и снижению производительности. 05:08 Издержки многократных вызовов • Многократные вызовы функции рисования увеличивают издержки и могут вызвать заикание процессора. • Функция косвенного многократного рисования позволяет отправить одну команду и обработать все объекты сразу. • Это позволяет избежать циклов for и повысить эффективность. 06:55 Принцип работы VKCMD draw indexed indirect • VKCMD draw индексированные косвенные данные позволяют управлять розыгрышами непосредственно на графическом процессоре. • Индексы используются для эффективного управления объектами без необходимости взаимодействия с центральным процессором. • Графический процессор манипулирует буфером, определяя, какие объекты будут нарисованы. 08:50 Детали работы с буфером • Графический процессор включает и выключает объекты в буфере, определяя, что будет нарисовано. • Количество экземпляров объектов может быть равно нулю или единице, что влияет на их визуализацию. • Разморозка фруструма приводит к повторному рисованию всех объектов. 11:22 Сигнатура VKCMD draw indexed indirect • Сигнатура функции включает командный буфер и буфер параметров отрисовки. • Командный буфер содержит команды для рисования. • Буфер параметров отрисовки определяет, какие объекты будут нарисованы, а какие нет. 13:12 Непрямой метод и буфер • Все переключатели и решения сводятся к буферу. • Графический процессор обращается к буферу и включает или выключает объекты для отрисовки. • Смещение равно нулю, счётчик команд отрисовки — это размер непрямых команд. 14:10 Структура непрямых команд • Размер непрямых команд соответствует максимальному количеству возможных вызовов отрисовки. • Шаг — это переход к следующему элементу. 14:56 Различие между непрямыми командами и буферами • Непрямые команды выполняются процессором, а буферы непрямых команд — графическим процессором. • Эти структуры похожи, но выполняют разные функции. 16:44 Инициализация и ограничения • Непрямые команды инициализируют всё и определяют максимальное количество объектов для отрисовки. • Они имитируют работу буферов непрямых команд на стороне графического процессора. 17:30 Пример с воздушным шариком • Непрямые команды сравниваются с надуванием воздушного шарика, который должен поместиться в «шатер» — буфер. • Необходимо знать максимальный размер шарика, чтобы определить размер «шатра». 19:21 Количество розыгрышей • Количество розыгрышей может быть равно нулю, что означает отсутствие отрисовки объектов. • При увеличении количества розыгрышей объекты начинают отображаться. 21:14 Влияние количества объектов на отрисовку • Создание 10 000 объектов занимает треть ресурсов. • Уменьшение количества объектов приводит к уменьшению количества нарисованных элементов. 24:08 Буферы команд и графический процессор • Буферы косвенных команд находятся на стороне графического процессора. • Создаётся буфер команд для обработки данных. 24:50 Введение в косвенные команды • Обсуждение работы с переменными командного буфера и косвенными командами. • Определение косвенных команд как вектора, содержащего смещение индекса и количество экземпляров для каждого объекта. 25:34 Настройка количества объектов • Установка количества объектов в кадре на 245. • Изменение размера переменных для непрямых команд до максимального количества объектов, умноженного на три. 26:24 Инициализация непрямых команд • Установка значений по умолчанию для количества инстансов и индексов. • Включение всех объектов по умолчанию, решение о отображении принимает вычислительный шейдер. 28:03 Создание промежуточного буфера • Создание промежуточного буфера для переноса данных на графический процессор. • Инициализация буферов непрямых команд на стороне графического процессора. 31:02 Буферы косвенных команд • Буферы косвенных команд как часть графического процессора. • Манипуляция буферами для решения, что рисовать. 35:29 Сравнение VK CMD draw indexed и VK CMD draw indexed indirect 38:19 Проблема заикания и многопоточный косвенный розыгрыш 40:08 Заключение и требования к оборудованию
00:00 Введение в VKCMD draw indexed indirect • Обсуждение важности функции VKCMD draw indexed indirect в компьютерной графике. • Функция позволяет контролировать рисование непосредственно на графическом процессоре, избегая взаимодействия с центральным процессором. • Это даёт значительный прирост производительности. 01:42 Преимущества косвенного множественного рисования • При наличии функции косвенного множественного рисования можно отправить одну команду для рисования всех объектов. • Без этой функции приходится отправлять отдельную команду для каждого объекта, что неэффективно. • В игре с 31 000 объектами это приводит к значительным затратам времени и ресурсов. 03:36 Внутреннее устройство графического процессора • Графический процессор должен перебирать данные в буфере для отображения объектов. • При отправке каждой команды графический процессор должен повторно обрабатывать данные. • Это приводит к задержкам и снижению производительности. 05:08 Издержки многократных вызовов • Многократные вызовы функции рисования увеличивают издержки и могут вызвать заикание процессора. • Функция косвенного многократного рисования позволяет отправить одну команду и обработать все объекты сразу. • Это позволяет избежать циклов for и повысить эффективность. 06:55 Принцип работы VKCMD draw indexed indirect • VKCMD draw индексированные косвенные данные позволяют управлять розыгрышами непосредственно на графическом процессоре. • Индексы используются для эффективного управления объектами без необходимости взаимодействия с центральным процессором. • Графический процессор манипулирует буфером, определяя, какие объекты будут нарисованы. 08:50 Детали работы с буфером • Графический процессор включает и выключает объекты в буфере, определяя, что будет нарисовано. • Количество экземпляров объектов может быть равно нулю или единице, что влияет на их визуализацию. • Разморозка фруструма приводит к повторному рисованию всех объектов. 11:22 Сигнатура VKCMD draw indexed indirect • Сигнатура функции включает командный буфер и буфер параметров отрисовки. • Командный буфер содержит команды для рисования. • Буфер параметров отрисовки определяет, какие объекты будут нарисованы, а какие нет. 13:12 Непрямой метод и буфер • Все переключатели и решения сводятся к буферу. • Графический процессор обращается к буферу и включает или выключает объекты для отрисовки. • Смещение равно нулю, счётчик команд отрисовки — это размер непрямых команд. 14:10 Структура непрямых команд • Размер непрямых команд соответствует максимальному количеству возможных вызовов отрисовки. • Шаг — это переход к следующему элементу. 14:56 Различие между непрямыми командами и буферами • Непрямые команды выполняются процессором, а буферы непрямых команд — графическим процессором. • Эти структуры похожи, но выполняют разные функции. 16:44 Инициализация и ограничения • Непрямые команды инициализируют всё и определяют максимальное количество объектов для отрисовки. • Они имитируют работу буферов непрямых команд на стороне графического процессора. 17:30 Пример с воздушным шариком • Непрямые команды сравниваются с надуванием воздушного шарика, который должен поместиться в «шатер» — буфер. • Необходимо знать максимальный размер шарика, чтобы определить размер «шатра». 19:21 Количество розыгрышей • Количество розыгрышей может быть равно нулю, что означает отсутствие отрисовки объектов. • При увеличении количества розыгрышей объекты начинают отображаться. 21:14 Влияние количества объектов на отрисовку • Создание 10 000 объектов занимает треть ресурсов. • Уменьшение количества объектов приводит к уменьшению количества нарисованных элементов. 24:08 Буферы команд и графический процессор • Буферы косвенных команд находятся на стороне графического процессора. • Создаётся буфер команд для обработки данных. 24:50 Введение в косвенные команды • Обсуждение работы с переменными командного буфера и косвенными командами. • Определение косвенных команд как вектора, содержащего смещение индекса и количество экземпляров для каждого объекта. 25:34 Настройка количества объектов • Установка количества объектов в кадре на 245. • Изменение размера переменных для непрямых команд до максимального количества объектов, умноженного на три. 26:24 Инициализация непрямых команд • Установка значений по умолчанию для количества инстансов и индексов. • Включение всех объектов по умолчанию, решение о отображении принимает вычислительный шейдер. 28:03 Создание промежуточного буфера • Создание промежуточного буфера для переноса данных на графический процессор. • Инициализация буферов непрямых команд на стороне графического процессора. 31:02 Буферы косвенных команд • Буферы косвенных команд как часть графического процессора. • Манипуляция буферами для решения, что рисовать. 35:29 Сравнение VK CMD draw indexed и VK CMD draw indexed indirect 38:19 Проблема заикания и многопоточный косвенный розыгрыш 40:08 Заключение и требования к оборудованию




