#084 Vulkan API: Трассировка лучей 14.0: Барицентрические координаты Данные о вершинах

00:01 Введение в CUDA Education • Приветствие зрителей. • Объяснение темы выпуска: пример выборки позиции трассировки лучей. 00:19 Барицентрические координаты • Графический процессор легко выдаёт барицентрические координаты. • Получение данных о вершинах треугольника сложнее. • В примере предполагается лёгкость получения координат вершин треугольника. 01:43 Генерация лучей и барицентрические веса • Лучи генерируются с помощью шейдера ray gen. • Барицентрические веса связаны с нахождением точки внутри треугольника. • GPU легко выдаёт значения весов для точки пересечения. 03:08 Правила для барицентрических весов • Вес должен быть либо больше или равен нулю, либо меньше или равен единице. • Пример: при попадании в вершину «А» первый вес равен единице, остальные — нулю. 05:53 Суммирование барицентрических весов • Все значения весов должны суммироваться до одного. • Пример: 0,34 + 0,35 + 0,32 = 1. 07:42 Ограничения барицентрических координат • Барицентрические координаты дают только относительное положение относительно вершин треугольника. • Не известно точное расположение вершин треугольника. 10:32 Аналогия с парком • Пример с парком: точка знает только своё относительное положение, но не знает пределов парка. 12:19 Тест на пересечение • Нарушение правил барицентрических координат указывает на пересечение. • Аппаратное обеспечение GPU уже знает барицентрические координаты для теста на пересечение. 15:00 Получение вершин треугольника • Получение относительных весов дёшево, но получение фактических координат требует больших вычислительных затрат. • Vulcan предоставляет возможность получения данных о местоположении в шейдере. 15:35 Выборка местоположения при трассировке лучей • При трассировке лучей важно получать вершины треугольника, в который попал луч. • Vulkan API предоставляет простой способ извлечения вершин треугольника. • Шейдеры работают на графическом процессоре, в отличие от исходного кода на процессоре. 16:26 Барицентрические координаты и относительные веса • Барицентрические координаты позволяют определить относительное положение луча относительно треугольника. • Отрицательные относительные веса указывают на нахождение за пределами треугольника. • Функция поиска местоположения с помощью расширенной трассировки лучей помогает получить координаты треугольника. 17:26 Изменение положения треугольника • Перемещение треугольника в направлении луча может изменить относительные веса и привести к соблюдению правил. • Относительные веса определяют, находится ли луч в треугольнике, но не дают информации о конкретных вершинах. 19:35 Необходимость координат вершин • Для полного понимания ситуации необходимы координаты вершин треугольника. • Перемещение луча может снова нарушить правила, если он окажется за пределами треугольника. 21:02 Математическое доказательство • Существует математическое доказательство, объясняющее, почему относительные веса всегда должны складываться в одно целое. • Ссылка на математическое доказательство будет предоставлена в комментариях. 22:27 Использование расширения GLEX в шейдере • Расширение GLEX позволяет вводить позиции вершин в шейдер и выполнять вычисления. • Это упрощает работу с данными о вершинах в шейдере. 24:40 Создание структуры ускорения нижнего уровня • Структура ускорения нижнего уровня содержит геометрию сцены, включая вершины и сетку. • Настройка структуры ускорения сборки VK разрешает доступ к данным KHR. 27:53 Включение расширений и доступ к данным • Включение расширений для устройств позволяет шейдеру получать доступ к данным о вершинах. • Шейдер может извлекать позиции треугольников из структуры ускорения нижнего уровня. 30:26 Преимущества полных данных о вершинах • Полные данные о вершинах позволяют выполнять более сложные вычисления, например, генерацию каркаса. • Относительные позиции ограничены в возможностях по сравнению с полными данными. 31:03 Итоги трассировки лучей • Выполнены базовая трассировка лучей, пересечение лучей, трассировка лучей по положению, отражений и теней. • Необходимо создать текстуры, шейдеры, табличные данные и GLT для трассировки лучей. • Упоминается RayQuery, который не обязательно является трассировкой лучей. 31:50 Образовательные цели • Материалы предназначены для образовательных целей и являются добросовестным использованием. • Ссылка на веб-сайт будет предоставлена ниже. • Рекомендация посмотреть видео с математическим доказательством. 32:48 Требования для выполнения примеров • Для выполнения примеров требуется компьютер под управлением Windows с графическим процессором, поддерживающим Vulcan. • Графический процессор должен поддерживать трассировку лучей, например, RTX и более поздние версии для NVIDIA. • Руководство по установке Vulcan API доступно по ссылке. 33:57 Сложности трассировки лучей 34:55 Заключение

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

00:01 Введение в CUDA Education • Приветствие зрителей. • Объяснение темы выпуска: пример выборки позиции трассировки лучей. 00:19 Барицентрические координаты • Графический процессор легко выдаёт барицентрические координаты. • Получение данных о вершинах треугольника сложнее. • В примере предполагается лёгкость получения координат вершин треугольника. 01:43 Генерация лучей и барицентрические веса • Лучи генерируются с помощью шейдера ray gen. • Барицентрические веса связаны с нахождением точки внутри треугольника. • GPU легко выдаёт значения весов для точки пересечения. 03:08 Правила для барицентрических весов • Вес должен быть либо больше или равен нулю, либо меньше или равен единице. • Пример: при попадании в вершину «А» первый вес равен единице, остальные — нулю. 05:53 Суммирование барицентрических весов • Все значения весов должны суммироваться до одного. • Пример: 0,34 + 0,35 + 0,32 = 1. 07:42 Ограничения барицентрических координат • Барицентрические координаты дают только относительное положение относительно вершин треугольника. • Не известно точное расположение вершин треугольника. 10:32 Аналогия с парком • Пример с парком: точка знает только своё относительное положение, но не знает пределов парка. 12:19 Тест на пересечение • Нарушение правил барицентрических координат указывает на пересечение. • Аппаратное обеспечение GPU уже знает барицентрические координаты для теста на пересечение. 15:00 Получение вершин треугольника • Получение относительных весов дёшево, но получение фактических координат требует больших вычислительных затрат. • Vulcan предоставляет возможность получения данных о местоположении в шейдере. 15:35 Выборка местоположения при трассировке лучей • При трассировке лучей важно получать вершины треугольника, в который попал луч. • Vulkan API предоставляет простой способ извлечения вершин треугольника. • Шейдеры работают на графическом процессоре, в отличие от исходного кода на процессоре. 16:26 Барицентрические координаты и относительные веса • Барицентрические координаты позволяют определить относительное положение луча относительно треугольника. • Отрицательные относительные веса указывают на нахождение за пределами треугольника. • Функция поиска местоположения с помощью расширенной трассировки лучей помогает получить координаты треугольника. 17:26 Изменение положения треугольника • Перемещение треугольника в направлении луча может изменить относительные веса и привести к соблюдению правил. • Относительные веса определяют, находится ли луч в треугольнике, но не дают информации о конкретных вершинах. 19:35 Необходимость координат вершин • Для полного понимания ситуации необходимы координаты вершин треугольника. • Перемещение луча может снова нарушить правила, если он окажется за пределами треугольника. 21:02 Математическое доказательство • Существует математическое доказательство, объясняющее, почему относительные веса всегда должны складываться в одно целое. • Ссылка на математическое доказательство будет предоставлена в комментариях. 22:27 Использование расширения GLEX в шейдере • Расширение GLEX позволяет вводить позиции вершин в шейдер и выполнять вычисления. • Это упрощает работу с данными о вершинах в шейдере. 24:40 Создание структуры ускорения нижнего уровня • Структура ускорения нижнего уровня содержит геометрию сцены, включая вершины и сетку. • Настройка структуры ускорения сборки VK разрешает доступ к данным KHR. 27:53 Включение расширений и доступ к данным • Включение расширений для устройств позволяет шейдеру получать доступ к данным о вершинах. • Шейдер может извлекать позиции треугольников из структуры ускорения нижнего уровня. 30:26 Преимущества полных данных о вершинах • Полные данные о вершинах позволяют выполнять более сложные вычисления, например, генерацию каркаса. • Относительные позиции ограничены в возможностях по сравнению с полными данными. 31:03 Итоги трассировки лучей • Выполнены базовая трассировка лучей, пересечение лучей, трассировка лучей по положению, отражений и теней. • Необходимо создать текстуры, шейдеры, табличные данные и GLT для трассировки лучей. • Упоминается RayQuery, который не обязательно является трассировкой лучей. 31:50 Образовательные цели • Материалы предназначены для образовательных целей и являются добросовестным использованием. • Ссылка на веб-сайт будет предоставлена ниже. • Рекомендация посмотреть видео с математическим доказательством. 32:48 Требования для выполнения примеров • Для выполнения примеров требуется компьютер под управлением Windows с графическим процессором, поддерживающим Vulcan. • Графический процессор должен поддерживать трассировку лучей, например, RTX и более поздние версии для NVIDIA. • Руководство по установке Vulcan API доступно по ссылке. 33:57 Сложности трассировки лучей 34:55 Заключение

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