#100 Vulkan API: Косвенный рендеринг, отброс невидимого, обзор LOD, часть 1
Описание
00:00 Введение и требования
• Приветствие и начало разбора примеров из рубрики «Обучение CUDA».
• Примеры доступны на GitHub, ссылки в описании.
• Для установки Vulcan API и примеров необходимо ознакомиться с первым и тринадцатым уроками.
00:46 Требования к системе
• Компьютер на базе Windows с видеокартой, поддерживающей Vulcan.
• Для примеров с трассировкой лучей требуется видеокарта серии RTX или новее.
01:48 Пример «Вычисление уровня детализации»
• Скрипт предназначен для отбраковки и определения уровня детализации с помощью вычислительных шейдеров и непрямого рендеринга.
• Уровень детализации зависит от расстояния объекта до камеры: чем ближе объект, тем выше детализация.
02:45 Статистика и уровень детализации
• Общее количество визуальных объектов — более 26 тысяч.
• Статистика по уровню детализации: у близких объектов уровень детализации выше, у дальних — ниже.
03:57 Туман и Frustum
• Туман представляет собой видимую область камеры.
• Frustum позволяет замораживать видимую область для экономии вычислительных ресурсов.
• При заморозке Frustum объекты за камерой не рендерятся.
08:36 Вызов вычислительного шейдера и непрямой рендеринг
• Традиционно центральный процессор вызывает графический процессор для рисования.
• В этом примере используется вычислительный шейдер для отбраковки объектов на графическом процессоре.
• Непрямой рендеринг позволяет графическому процессору отправлять вызовы отрисовки.
10:40 Шейдеры и обработка
• Фрагментный шейдер используется для отбраковки, вершинный — для работы с мешами.
• Обработка происходит на стороне графического процессора.
12:42 Заключение и установка
• Скрипт доступен на GitHub, установка описана в первом и тринадцатом обучающих видео.
• Это самый простой способ установить Vulkan на компьютер.
13:39 Пример для Android
• Упоминание о примерах для Android.
• Демонстрация работы переменной fixed frostum: при значении false всё обрабатывается, при значении true объекты за камерой не рендерятся.
14:35 Ограничение видимости
• Ограничение видимости объектов тем, что видно камере.
• При заморозке изображения фрустума используется уровень детализации 5D.
• Объекты окрашены в красный цвет, детали на фрустуме уменьшены.
15:31 Детализация объектов
• Визуализация только тех объектов, которые видит камера.
• Разморозка усечённого конуса возвращает оригинальную картинку и уровень детализации.
• Установка «стоп-фрустрация» по умолчанию на true снижает уровень детализации.
16:48 Модель LOD и буферы
• Обсуждение подходящей модели LOD.
• Буферы косвенного управления и статистика косвенных ничьих.
• Сохранение команд косвенного рисования с смещениями индексов и количеством экземпляров.
17:32 Синхронизация и семафоры
• Преграды синхронизации для избежания перезаписи буфера вычислительных команд.
• Вычислительные семафоры для синхронизации процессов на графических процессорах.
• Семафоры используются как весовые семафоры для отправки графических данных.
18:47 Отображение и деструкторы
• Отображение усечённой пирамиды для вызова невидимых объектов.
• Деструкторы для удаления объектов.
• Подготовка графики, разметка буферов и конвейера.
20:04 Непрямые вызовы отрисовки
• Вызовы отрисовки отправляются с графического процессора.
• Начальный барьер для очереди графических данных предотвращает ошибки при выполнении вычислений.
21:46 Устройства с поддержкой вычислений
• Создание очереди устройств с поддержкой вычислений.
• Различия в видеокартах: некоторые поддерживают вычисления отдельно от графики, другие — нет.
• Необходимость адаптации скрипта под разные видеокарты.
23:01 Семафоры и ограждения
• Семафоры для упорядочивания вычислений и графических операций.
• Ограждения для проверки выполнения командного буфера.
• Связь между процессором и видеокартой через ограждения.
24:56 Завершение рендеринга
• Ожидание завершения рендеринга.
• Отправка графических команд после команд вычислений.
27:31 Уровень детализации
• Настройка максимального уровня детализации на ноль.
• Влияние уровня детализации на статистику.
29:10 Заключение
• Подчёркивание необходимости дальнейшего изучения вычислительных шейдеров и уровня детализации.
• Рекомендация туториалов для освоения Vulkan.
• Благодарность зрителям и прощание.
Рекомендуемые видео
















