#079 Vulkan API: Трассировка лучей 13.0: raytracingbasic.cpp изменения в коде

00:00 Введение • Приветствие и анонс темы выпуска: изменения в базовом сценарии трассировки лучей. • Упоминание статьи Саши Уильямса о улучшениях в коде. 00:33 Сравнение старого и нового сценариев • Описание задачи сценария: создание треугольника с трассировкой лучей. • Различия между старым и новым скриптами: эффективность, синхронизация, простота. • Цель видео: показать различия между файлами. 01:32 Буфер команд • Важность понимания буфера команд для трассировки лучей. • В старом сценарии буфер команд был запутанным. • В новом сценарии используется один буфер команд для каждого кадра, что упрощает управление логикой и синхронизацией. 03:50 Эволюция Vulkan • Vulkan всё ещё считается новым языком, но теперь есть лучшие практики. • Старые примеры были более запутанными из-за отсутствия опыта работы с API. 05:15 Синхронизация и базовый класс • Большая часть синхронизации выполняется в базовом классе. • Явная логика синхронизации отсутствует в основном файле. • Рекомендация анализировать изменения для лучшего понимания Vulkan. 07:35 Требования к оборудованию • Необходимость графического процессора с поддержкой трассировки лучей. • Для NVIDIA требуется видеокарта RTX или выше. 08:24 Изменения в базовом классе • Добавление ссылки на нулевой указатель. • Инициализация переменной index count. • Создание однородных буферов и массивов дескрипторов. 13:42 Наборы дескрипторов • В старом файле используется один набор дескрипторов для всех кадров. • В новом файле создаётся отдельный набор дескрипторов для каждого кадра. • Это упрощает управление и предотвращает проблемы с синхронизацией. 15:02 Настройки для каждого кадра • Настройки для каждого кадра аналогичны настройкам для буферов. • Структура ускорения и изображение хранилища не дублируются для каждого кадра. • Использование одного и того же для каждого дескриптора упрощает задачу. 17:07 Создание наборов дескрипторов • В новом файле создаётся набор дескрипторов для каждого кадра. • В старом файле выполняется одно действие, в новом — цикл от 0 до максимального количества одновременных кадров. • Цикл for позволяет создавать несколько наборов дескрипторов. 17:59 Проблемы с синхронизацией • Использование одного набора дескрипторов может привести к проблемам синхронизации. • Повторное использование одного и того же набора дескрипторов замедляет работу. • В новой версии у каждого кадра свой персональный набор дескрипторов. 20:49 Однородные буферы и шейдеры • Создаются однородные буферы для передачи матриц в шейдер генерации лучей. • Используется цикл for для создания буферов. 23:35 Генерация командного буфера • В старой версии командные буферы предварительно записываются. • В новой версии командный буфер создаётся для каждого кадра отдельно. • Управление командным буфером осуществляется командой draw buffer current buffer. 26:07 Процесс трассировки лучей • Запуск процесса трассировки лучей vkcmd trace rayskr. • Подготовка изображения цепочки подкачки для передачи. • Извлечение кадров, рисование на них и возвращение в очередь цепочки подкачки. 29:39 Функция подготовки • В новой функции подготовки не вызываются буферы команд сборки. • Буферы команд сборки создаются «на лету». • Вызов build command buffer происходит в вызове рендеринга. 32:33 Сравнение кода • Старый код содержит 920 строк, новый — 906 строк. • Новый сценарий проще для понимания и следования логике. • Автор благодарит автора улучшенного сценария и планирует глубже изучить новую логику.

Иконка канала Ленинский Букварь
245 подписчиков
12+
6 просмотров
4 дня назад
12+
6 просмотров
4 дня назад

00:00 Введение • Приветствие и анонс темы выпуска: изменения в базовом сценарии трассировки лучей. • Упоминание статьи Саши Уильямса о улучшениях в коде. 00:33 Сравнение старого и нового сценариев • Описание задачи сценария: создание треугольника с трассировкой лучей. • Различия между старым и новым скриптами: эффективность, синхронизация, простота. • Цель видео: показать различия между файлами. 01:32 Буфер команд • Важность понимания буфера команд для трассировки лучей. • В старом сценарии буфер команд был запутанным. • В новом сценарии используется один буфер команд для каждого кадра, что упрощает управление логикой и синхронизацией. 03:50 Эволюция Vulkan • Vulkan всё ещё считается новым языком, но теперь есть лучшие практики. • Старые примеры были более запутанными из-за отсутствия опыта работы с API. 05:15 Синхронизация и базовый класс • Большая часть синхронизации выполняется в базовом классе. • Явная логика синхронизации отсутствует в основном файле. • Рекомендация анализировать изменения для лучшего понимания Vulkan. 07:35 Требования к оборудованию • Необходимость графического процессора с поддержкой трассировки лучей. • Для NVIDIA требуется видеокарта RTX или выше. 08:24 Изменения в базовом классе • Добавление ссылки на нулевой указатель. • Инициализация переменной index count. • Создание однородных буферов и массивов дескрипторов. 13:42 Наборы дескрипторов • В старом файле используется один набор дескрипторов для всех кадров. • В новом файле создаётся отдельный набор дескрипторов для каждого кадра. • Это упрощает управление и предотвращает проблемы с синхронизацией. 15:02 Настройки для каждого кадра • Настройки для каждого кадра аналогичны настройкам для буферов. • Структура ускорения и изображение хранилища не дублируются для каждого кадра. • Использование одного и того же для каждого дескриптора упрощает задачу. 17:07 Создание наборов дескрипторов • В новом файле создаётся набор дескрипторов для каждого кадра. • В старом файле выполняется одно действие, в новом — цикл от 0 до максимального количества одновременных кадров. • Цикл for позволяет создавать несколько наборов дескрипторов. 17:59 Проблемы с синхронизацией • Использование одного набора дескрипторов может привести к проблемам синхронизации. • Повторное использование одного и того же набора дескрипторов замедляет работу. • В новой версии у каждого кадра свой персональный набор дескрипторов. 20:49 Однородные буферы и шейдеры • Создаются однородные буферы для передачи матриц в шейдер генерации лучей. • Используется цикл for для создания буферов. 23:35 Генерация командного буфера • В старой версии командные буферы предварительно записываются. • В новой версии командный буфер создаётся для каждого кадра отдельно. • Управление командным буфером осуществляется командой draw buffer current buffer. 26:07 Процесс трассировки лучей • Запуск процесса трассировки лучей vkcmd trace rayskr. • Подготовка изображения цепочки подкачки для передачи. • Извлечение кадров, рисование на них и возвращение в очередь цепочки подкачки. 29:39 Функция подготовки • В новой функции подготовки не вызываются буферы команд сборки. • Буферы команд сборки создаются «на лету». • Вызов build command buffer происходит в вызове рендеринга. 32:33 Сравнение кода • Старый код содержит 920 строк, новый — 906 строк. • Новый сценарий проще для понимания и следования логике. • Автор благодарит автора улучшенного сценария и планирует глубже изучить новую логику.

, чтобы оставлять комментарии