#074 Vulkan API: Трассировка лучей 12.2: RayPayloadEXT RayPayloadInEXT Обмен информацией лучей
00:00 Введение • Приветствие и анонс темы видео: передача переменных между шейдерами в Vulcan. • Упоминание о необходимости прохождения первого и тринадцатого уроков для установки Vulcan API и примеров. • Рекомендация проверить поддержку трассировки лучей на видеокартах серии RTX и выше. 00:59 Основы трассировки теней • Описание процесса расчёта теней с помощью источника света, вращающегося вокруг сцены. • Объяснение работы основного луча и второго луча для определения теней. • Проверка наличия объектов между источником света и точкой попадания луча. 03:48 Проблема обмена данными • Необходимость обмена данными между первичным и вторичным лучами. • Введение понятий Ray Payload in EXT и Ray Payload EXT для решения этой проблемы. 05:06 Структура шейдеров • Описание четырёх шейдеров: Raygen, Hit, Shadow, Miss. • Объяснение роли переменной «значение попадания» в шейдере Raygen. 06:06 Передача данных с помощью Ray Payload EXT • Использование Ray Payload EXT для передачи значения попадания из шейдера Raygen в шейдер Hit. • Аналогия с радиостанцией для передачи информации. 08:01 Обработка данных в шейдере Hit • Использование значения попадания в шейдере Hit для вычислений. • Создание переменной «затенённая» для определения, будет ли точка затенена. 09:53 Передача переменной «затенённая» • Передача переменной «затенённая» через Ray Payload EXT для доступа к ней другим шейдерам. • По умолчанию всё затенено, но шейдер теней может отключить затенение. 11:41 Роль шейдера Shadow Miss • Шейдер Shadow Miss получает переменную «затенённая» и преобразует её в другое значение. • Отключение затенения для освещённых точек. 13:33 Заключение • Повторение процесса передачи данных между шейдерами: Hit значение, затенённая переменная. • Подчёркивание важности совпадения расположений для корректной передачи данных. 14:27 Точка попадания и шейдер теневого промаха • Шейдеру теневого промаха не нужно значение точки попадания, поэтому оно не передаётся в переменной hit value. • Точка два используется для генерации теневого луча с помощью функции trace ray ext. 16:01 Генерация теневого луча • Генерируется второй луч от точки попадания до источника света. • Используются флаги: завершение при первом попадании, непрозрачность, пропуск шейдера ближайшего попадания. • Передаются данные о положении источника света и местоположении затенённой переменной. 16:55 Отключение шейдера shadow miss • Отключение шейдера shadow miss приводит к тому, что все объекты остаются затенёнными по умолчанию. • Источник света движется, вызывая небольшие изменения в яркости объектов. 20:15 Эксперимент с затенением • Отключение шейдера теней делает сцену освещённой по умолчанию, без теней. • Шейдеры компилируются в формат Spare V для единообразия поведения графических процессоров. 23:25 Перевёрнутый скрипт • Перевёрнутый скрипт делает тень освещённой частью объекта. • Это эффект, популярный в компьютерной графике. 24:30 Преимущества Vulcan • Vulcan предоставляет полный контроль над графикой, позволяя эффективно решать различные задачи. • Несмотря на сложность кода, Vulcan позволяет создавать сложные графические эффекты. 28:03 Заключение
00:00 Введение • Приветствие и анонс темы видео: передача переменных между шейдерами в Vulcan. • Упоминание о необходимости прохождения первого и тринадцатого уроков для установки Vulcan API и примеров. • Рекомендация проверить поддержку трассировки лучей на видеокартах серии RTX и выше. 00:59 Основы трассировки теней • Описание процесса расчёта теней с помощью источника света, вращающегося вокруг сцены. • Объяснение работы основного луча и второго луча для определения теней. • Проверка наличия объектов между источником света и точкой попадания луча. 03:48 Проблема обмена данными • Необходимость обмена данными между первичным и вторичным лучами. • Введение понятий Ray Payload in EXT и Ray Payload EXT для решения этой проблемы. 05:06 Структура шейдеров • Описание четырёх шейдеров: Raygen, Hit, Shadow, Miss. • Объяснение роли переменной «значение попадания» в шейдере Raygen. 06:06 Передача данных с помощью Ray Payload EXT • Использование Ray Payload EXT для передачи значения попадания из шейдера Raygen в шейдер Hit. • Аналогия с радиостанцией для передачи информации. 08:01 Обработка данных в шейдере Hit • Использование значения попадания в шейдере Hit для вычислений. • Создание переменной «затенённая» для определения, будет ли точка затенена. 09:53 Передача переменной «затенённая» • Передача переменной «затенённая» через Ray Payload EXT для доступа к ней другим шейдерам. • По умолчанию всё затенено, но шейдер теней может отключить затенение. 11:41 Роль шейдера Shadow Miss • Шейдер Shadow Miss получает переменную «затенённая» и преобразует её в другое значение. • Отключение затенения для освещённых точек. 13:33 Заключение • Повторение процесса передачи данных между шейдерами: Hit значение, затенённая переменная. • Подчёркивание важности совпадения расположений для корректной передачи данных. 14:27 Точка попадания и шейдер теневого промаха • Шейдеру теневого промаха не нужно значение точки попадания, поэтому оно не передаётся в переменной hit value. • Точка два используется для генерации теневого луча с помощью функции trace ray ext. 16:01 Генерация теневого луча • Генерируется второй луч от точки попадания до источника света. • Используются флаги: завершение при первом попадании, непрозрачность, пропуск шейдера ближайшего попадания. • Передаются данные о положении источника света и местоположении затенённой переменной. 16:55 Отключение шейдера shadow miss • Отключение шейдера shadow miss приводит к тому, что все объекты остаются затенёнными по умолчанию. • Источник света движется, вызывая небольшие изменения в яркости объектов. 20:15 Эксперимент с затенением • Отключение шейдера теней делает сцену освещённой по умолчанию, без теней. • Шейдеры компилируются в формат Spare V для единообразия поведения графических процессоров. 23:25 Перевёрнутый скрипт • Перевёрнутый скрипт делает тень освещённой частью объекта. • Это эффект, популярный в компьютерной графике. 24:30 Преимущества Vulcan • Vulcan предоставляет полный контроль над графикой, позволяя эффективно решать различные задачи. • Несмотря на сложность кода, Vulcan позволяет создавать сложные графические эффекты. 28:03 Заключение
