#076 Vulkan API: Трассировка лучей 12.4: Генерация лучей с использованием tracerayEXT
00:00 Введение • Приветствие и объявление темы выпуска: вызов функции в CUDA Education. • Подчёркивание важности эффективности и терпения в процессе обучения. 00:44 Требования для запуска примеров • Необходимость установки Vulkan API на компьютер с Windows и графическим процессором, поддерживающим Vulkan. • Для трассировки лучей требуется графический процессор с поддержкой трассировки лучей, например, RTX от NVIDIA. • Упоминание о тринадцатом уроке для установки всех примеров. 02:35 Функция traceRay • Объяснение функции traceRay: генерация лучей в сцене. • TraceRay обычно является одним из последних вызовов в шейдерах. 04:09 Шейдеры и их функции • Описание четырёх шейдеров: raygen, hit, closestHit и rageEnd. • Raygen генерирует первичные лучи, которые выходят из объектива камеры и попадают на сцену. • Hit-шейдер проверяет, является ли точка тенью или освещённой. 07:01 Принцип работы теневых лучей • Объяснение работы теневых тестовых лучей: проверка наличия препятствий между точкой соприкосновения первичного луча и источником света. • Если что-то прерывает теневой тестовый луч, точка считается затенённой. • Если есть чёткий обзор до источника света, точка считается освещённой. 09:06 Аргументы функции traceRay • Перечисление одиннадцати аргументов функции traceRay. • Важность соответствия индексов смещения в шейдере hit. 10:53 Полезная нагрузка и значение попадания • Объяснение полезной нагрузки лучей: зарегистрированный багаж, ручная кладь и личные вещи. • Значение попадания как механизм записи информации о луче. • Передача значения попадания между шейдерами для создания изображения. 14:30 Использование значения попадания • Применение значения попадания для отображения результатов на экране. • Буфер хранения изображений как место для хранения данных о лучах. 15:07 Запуск массива с полезной нагрузкой • Массив с полезной нагрузкой запускается в нулевом местоположении. • Переменная hit value используется для отображения данных на экран. • В шейдере hit последний параметр — это местоположение два. 16:02 Теневая переменная • Местоположение два — это теневая переменная. • Создаётся переменная shadowed типа bool в шейдере hit. • Запускается тестовый массив shadow с полезной нагрузкой shadowed. 17:07 Обработка переменной shadowed • После генерации массива выполняется обработка переменной shadowed. • Результат от луча получается из затенённой переменной. • Если переменная затенена, выполняется определённая обработка. 18:55 Структура ускорения высшего уровня • Структура ускорения высшего уровня — это сцена, которую нужно пересечь. • Она используется в регенерации и шейдере hit. 20:41 Источник луча • Источник луча находится в месте расположения камеры. • Создаётся первичный массив данных из этого места. 21:24 Точка попадания • Точка попадания описывает момент попадания луча во что-то. • Массив данных создаётся начиная с точки попадания. 22:48 T-min и T-max • T-min и T-max определяют время поиска. • T-min ограничивает начало поиска, чтобы избежать «прыщей» — попадания в объектив камеры. • T-max определяет максимальную дальность поиска. 24:55 Направление xyz • Направление xyz определяет направление движения вектора. • Для «ярости» направление должно быть от камеры к сцене. • Для шейдера «удар» световой вектор движется от точки к источнику света. 26:23 Рэй флэгс • В вызове raygen используется gl ray flags непрозрачный. • Для теневого луча используется больше флагов для учёта различных условий. • Домашнее задание: объяснить значение флагов. 29:49 Маска вызова • Маска вызова помогает определить, что учитывать, а что нет. • Она используется для побитового отображения и отрицания определённых вещей в процессе прохождения луча. • Домашнее задание: объяснить, что такое маска вызова и почему она важна в trace ray. 31:51 Введение в маску вызова и таблицу привязки шейдеров • Обсуждение маски вызова и её роли в процессе. • Упоминание о смещении и шаге записи таблицы привязки шейдеров. • Краткое упоминание о видео, посвящённых таблице привязки шейдеров. 32:48 Завершение структуры ускорения • Подведение итогов разработки структуры ускорения верхнего уровня. • Перечисление переменных: origin, t in, direction, t-max, полезная нагрузка. • Назначение флагов массива и маски вызова в качестве домашнего задания. 34:12 Последний аргумент и его значение • Объяснение значения последнего аргумента: ноль при восстановлении и единица при попадании. • Объяснение разницы между шейдерами miss и shadow miss. 35:49 Работа с шейдерами miss • Описание работы шейдера miss: при промахе луч даёт синий цвет. • Объяснение работы шейдера shadow miss: переключение режима «затенённый» или «теневой туман». 38:05 Создание таблиц привязки шейдеров • Необходимость двух дескрипторов для таблицы привязки шейдеров miss. • Объяснение операций с памятью и значений ноль и единица. 40:08 Заключение и рекомендации 42:09 Итоги
00:00 Введение • Приветствие и объявление темы выпуска: вызов функции в CUDA Education. • Подчёркивание важности эффективности и терпения в процессе обучения. 00:44 Требования для запуска примеров • Необходимость установки Vulkan API на компьютер с Windows и графическим процессором, поддерживающим Vulkan. • Для трассировки лучей требуется графический процессор с поддержкой трассировки лучей, например, RTX от NVIDIA. • Упоминание о тринадцатом уроке для установки всех примеров. 02:35 Функция traceRay • Объяснение функции traceRay: генерация лучей в сцене. • TraceRay обычно является одним из последних вызовов в шейдерах. 04:09 Шейдеры и их функции • Описание четырёх шейдеров: raygen, hit, closestHit и rageEnd. • Raygen генерирует первичные лучи, которые выходят из объектива камеры и попадают на сцену. • Hit-шейдер проверяет, является ли точка тенью или освещённой. 07:01 Принцип работы теневых лучей • Объяснение работы теневых тестовых лучей: проверка наличия препятствий между точкой соприкосновения первичного луча и источником света. • Если что-то прерывает теневой тестовый луч, точка считается затенённой. • Если есть чёткий обзор до источника света, точка считается освещённой. 09:06 Аргументы функции traceRay • Перечисление одиннадцати аргументов функции traceRay. • Важность соответствия индексов смещения в шейдере hit. 10:53 Полезная нагрузка и значение попадания • Объяснение полезной нагрузки лучей: зарегистрированный багаж, ручная кладь и личные вещи. • Значение попадания как механизм записи информации о луче. • Передача значения попадания между шейдерами для создания изображения. 14:30 Использование значения попадания • Применение значения попадания для отображения результатов на экране. • Буфер хранения изображений как место для хранения данных о лучах. 15:07 Запуск массива с полезной нагрузкой • Массив с полезной нагрузкой запускается в нулевом местоположении. • Переменная hit value используется для отображения данных на экран. • В шейдере hit последний параметр — это местоположение два. 16:02 Теневая переменная • Местоположение два — это теневая переменная. • Создаётся переменная shadowed типа bool в шейдере hit. • Запускается тестовый массив shadow с полезной нагрузкой shadowed. 17:07 Обработка переменной shadowed • После генерации массива выполняется обработка переменной shadowed. • Результат от луча получается из затенённой переменной. • Если переменная затенена, выполняется определённая обработка. 18:55 Структура ускорения высшего уровня • Структура ускорения высшего уровня — это сцена, которую нужно пересечь. • Она используется в регенерации и шейдере hit. 20:41 Источник луча • Источник луча находится в месте расположения камеры. • Создаётся первичный массив данных из этого места. 21:24 Точка попадания • Точка попадания описывает момент попадания луча во что-то. • Массив данных создаётся начиная с точки попадания. 22:48 T-min и T-max • T-min и T-max определяют время поиска. • T-min ограничивает начало поиска, чтобы избежать «прыщей» — попадания в объектив камеры. • T-max определяет максимальную дальность поиска. 24:55 Направление xyz • Направление xyz определяет направление движения вектора. • Для «ярости» направление должно быть от камеры к сцене. • Для шейдера «удар» световой вектор движется от точки к источнику света. 26:23 Рэй флэгс • В вызове raygen используется gl ray flags непрозрачный. • Для теневого луча используется больше флагов для учёта различных условий. • Домашнее задание: объяснить значение флагов. 29:49 Маска вызова • Маска вызова помогает определить, что учитывать, а что нет. • Она используется для побитового отображения и отрицания определённых вещей в процессе прохождения луча. • Домашнее задание: объяснить, что такое маска вызова и почему она важна в trace ray. 31:51 Введение в маску вызова и таблицу привязки шейдеров • Обсуждение маски вызова и её роли в процессе. • Упоминание о смещении и шаге записи таблицы привязки шейдеров. • Краткое упоминание о видео, посвящённых таблице привязки шейдеров. 32:48 Завершение структуры ускорения • Подведение итогов разработки структуры ускорения верхнего уровня. • Перечисление переменных: origin, t in, direction, t-max, полезная нагрузка. • Назначение флагов массива и маски вызова в качестве домашнего задания. 34:12 Последний аргумент и его значение • Объяснение значения последнего аргумента: ноль при восстановлении и единица при попадании. • Объяснение разницы между шейдерами miss и shadow miss. 35:49 Работа с шейдерами miss • Описание работы шейдера miss: при промахе луч даёт синий цвет. • Объяснение работы шейдера shadow miss: переключение режима «затенённый» или «теневой туман». 38:05 Создание таблиц привязки шейдеров • Необходимость двух дескрипторов для таблицы привязки шейдеров miss. • Объяснение операций с памятью и значений ноль и единица. 40:08 Заключение и рекомендации 42:09 Итоги




