Город МОСКОВСКИЙ
00:30:32

#100 Vulkan API: Косвенный рендеринг, отброс невидимого, обзор LOD, часть 1

Аватар
Ленинский Букварь
Просмотры:
16
Дата загрузки:
20.05.2026 17:17
Длительность:
00:30:32
Категория:
Обучение

Описание

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.
• Благодарность зрителям и прощание.

Рекомендуемые видео