#147 Трассировка лучей на GPU - 3.1. Выбор текстур или доступ к хранилищу изображений

00:00 Введение и цель видео • Приветствие и объявление темы выпуска: изменение работы приложения для вычислительной трассировки лучей. • Цель: использование сэмплера текстур вместо сэмплера и прямая загрузка изображений. 00:58 Обзор предыдущего подхода • В первом видео рассматривался подход к созданию сэмплера текстур с выборкой и дополнительной обработкой изображения. 01:19 Запуск приложения • Запуск приложения на встроенной видеокарте для демонстрации медленной работы. • Объяснение, почему используется встроенная видеокарта: для приближения к реальным условиям работы. 02:19 Цель изменений • Желание загрузить изображение, созданное вычислениями, непосредственно на экран. • Упоминание о менее привлекательном исходном изображении. 03:17 Использование ChatGPT • Обращение к ChatGPT для помощи в замене выборки текстур на прямую загрузку изображения. • Описание компонентов приложения: исходный файл .cpp и шейдеры. 05:08 Анализ текущего подхода • Объяснение использования функции текстуры для обработки изображения. • Роль функции выбора цвета и привязки. 07:17 Переход к прямой загрузке • Объяснение прямого доступа к изображениям хранилища и функции загрузки изображений. • Описание различий между текущим и прямым путями. 10:11 Изменение графического дескриптора • Необходимость изменения графического дескриптора с комбинированного сэмплера изображений на изображение для хранения. • Настройка привязки изображения с нулевым объёмом памяти. 12:04 Реализация изменений • Замена комбинированного сэмплера изображений на дескриптор типа storage image. • Изменение дескриптора write на storage image write. 14:18 Завершение • Проверка подготовленной графики в строке 298. • Подтверждение правильности изменений. 15:01 Подготовка графики • В функции подготовки графики изменяем привязку макета дескриптора к хранилищу. • Вводим тип дескриптора storage image. • Подготавливаем образ хранилища для хранения выходных данных трассировки лучей вычислительного шейдера. 17:09 Работа с макетом изображения • Макет изображения используется для хранения данных. • Сэмплер изображения для хранения заменяется на нулевой дескриптор VK. 19:08 Изменение типа изображения • Меняем тип изображения с комбинированного выборочного на изображение для хранения. • Обнуляем остальные параметры, сохраняя остальное неизменным. 20:05 Обновление наборов дескрипторов • Обновляем наборы дескрипторов. • Проверяем, что изображение уже обрабатывается как изображение для хранения. 21:37 Изменение шейдера фрагмента • Изменяем шейдер фрагмента с sampler 2D плюс функция текстуры на image 2D плюс загрузка изображения. • Перекомпилируем файл в формат SPV. 24:09 Исправление ошибок • Исправляем ошибки в исходном файле, закомментировав ненужные строки. • Сохраняем изменения и компилируем файл в формат SPV. 25:59 Работа с файлом SPV • Файл SPV читается при загрузке на этапах шейдера. • Объясняется важность компиляции шейдеров в формат SPV. 26:17 Шейдеры и Vulcan • Шейдеры выполняются на стороне графического процессора. • Vulcan обеспечивает основу для инноваций в компьютерной графике. 28:11 Языки шейдеров • Приложения используют языки шейдеров GLSL, HLSL и другие. • GLSL является основным языком, HLSL — особенностью Microsoft. 28:41 Введение в нейронные шейдеры и трассировку лучей • Обсуждение внедрения искусственного интеллекта в компьютерную графику. • Упоминание о необходимости компиляции шейдерного GLSL-кода в формат SPIR-V. 29:39 Формат SPIR-V и его цели • SPIR-V создан группой Kronos для обеспечения единообразного поведения графических процессоров разных производителей. • Решение проблемы различий в поведении графических процессоров в прошлом. 30:36 Процесс компиляции шейдеров • Необходимость перекомпиляции шейдеров при обновлении кода. • Успешная компиляция без ошибок. 31:33 Проблемы с кодом и их решение • Обнаружение проблем с кодом и их исправление с помощью группы Kronos. • Обновление строки кода для успешной загрузки изображения. 33:28 Перекомпиляция шейдера • Перестройка файла texture.frag.spv в формат SPIR-V после редактирования GLSL. • Важность перекомпиляции для отображения изменений на стороне C. 34:20 Использование изменённой функции компиляции • Применение изменённой функции Shaders.py для компиляции. • Проблемы с компилятором по умолчанию и необходимость использования нового компилятора. 35:20 Тестирование и результаты • Запуск программы после перекомпиляции и проверка результатов. • Наблюдение за изменениями в изображении: более зазубренные края сфер. 36:14 Влияние настроек сэмплера • Обсуждение влияния настроек сэмплера на качество изображения. • Рекомендации по удалению создания сэмплера после тестирования. 37:12 Заключение 38:00 Начало тестирования 38:19 Возврат к исходному состоянию 39:06 Анализ изменений 39:17 Возвращение к необработанному изображению 40:46 Повторное тестирование 43:27 Завершение

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

00:00 Введение и цель видео • Приветствие и объявление темы выпуска: изменение работы приложения для вычислительной трассировки лучей. • Цель: использование сэмплера текстур вместо сэмплера и прямая загрузка изображений. 00:58 Обзор предыдущего подхода • В первом видео рассматривался подход к созданию сэмплера текстур с выборкой и дополнительной обработкой изображения. 01:19 Запуск приложения • Запуск приложения на встроенной видеокарте для демонстрации медленной работы. • Объяснение, почему используется встроенная видеокарта: для приближения к реальным условиям работы. 02:19 Цель изменений • Желание загрузить изображение, созданное вычислениями, непосредственно на экран. • Упоминание о менее привлекательном исходном изображении. 03:17 Использование ChatGPT • Обращение к ChatGPT для помощи в замене выборки текстур на прямую загрузку изображения. • Описание компонентов приложения: исходный файл .cpp и шейдеры. 05:08 Анализ текущего подхода • Объяснение использования функции текстуры для обработки изображения. • Роль функции выбора цвета и привязки. 07:17 Переход к прямой загрузке • Объяснение прямого доступа к изображениям хранилища и функции загрузки изображений. • Описание различий между текущим и прямым путями. 10:11 Изменение графического дескриптора • Необходимость изменения графического дескриптора с комбинированного сэмплера изображений на изображение для хранения. • Настройка привязки изображения с нулевым объёмом памяти. 12:04 Реализация изменений • Замена комбинированного сэмплера изображений на дескриптор типа storage image. • Изменение дескриптора write на storage image write. 14:18 Завершение • Проверка подготовленной графики в строке 298. • Подтверждение правильности изменений. 15:01 Подготовка графики • В функции подготовки графики изменяем привязку макета дескриптора к хранилищу. • Вводим тип дескриптора storage image. • Подготавливаем образ хранилища для хранения выходных данных трассировки лучей вычислительного шейдера. 17:09 Работа с макетом изображения • Макет изображения используется для хранения данных. • Сэмплер изображения для хранения заменяется на нулевой дескриптор VK. 19:08 Изменение типа изображения • Меняем тип изображения с комбинированного выборочного на изображение для хранения. • Обнуляем остальные параметры, сохраняя остальное неизменным. 20:05 Обновление наборов дескрипторов • Обновляем наборы дескрипторов. • Проверяем, что изображение уже обрабатывается как изображение для хранения. 21:37 Изменение шейдера фрагмента • Изменяем шейдер фрагмента с sampler 2D плюс функция текстуры на image 2D плюс загрузка изображения. • Перекомпилируем файл в формат SPV. 24:09 Исправление ошибок • Исправляем ошибки в исходном файле, закомментировав ненужные строки. • Сохраняем изменения и компилируем файл в формат SPV. 25:59 Работа с файлом SPV • Файл SPV читается при загрузке на этапах шейдера. • Объясняется важность компиляции шейдеров в формат SPV. 26:17 Шейдеры и Vulcan • Шейдеры выполняются на стороне графического процессора. • Vulcan обеспечивает основу для инноваций в компьютерной графике. 28:11 Языки шейдеров • Приложения используют языки шейдеров GLSL, HLSL и другие. • GLSL является основным языком, HLSL — особенностью Microsoft. 28:41 Введение в нейронные шейдеры и трассировку лучей • Обсуждение внедрения искусственного интеллекта в компьютерную графику. • Упоминание о необходимости компиляции шейдерного GLSL-кода в формат SPIR-V. 29:39 Формат SPIR-V и его цели • SPIR-V создан группой Kronos для обеспечения единообразного поведения графических процессоров разных производителей. • Решение проблемы различий в поведении графических процессоров в прошлом. 30:36 Процесс компиляции шейдеров • Необходимость перекомпиляции шейдеров при обновлении кода. • Успешная компиляция без ошибок. 31:33 Проблемы с кодом и их решение • Обнаружение проблем с кодом и их исправление с помощью группы Kronos. • Обновление строки кода для успешной загрузки изображения. 33:28 Перекомпиляция шейдера • Перестройка файла texture.frag.spv в формат SPIR-V после редактирования GLSL. • Важность перекомпиляции для отображения изменений на стороне C. 34:20 Использование изменённой функции компиляции • Применение изменённой функции Shaders.py для компиляции. • Проблемы с компилятором по умолчанию и необходимость использования нового компилятора. 35:20 Тестирование и результаты • Запуск программы после перекомпиляции и проверка результатов. • Наблюдение за изменениями в изображении: более зазубренные края сфер. 36:14 Влияние настроек сэмплера • Обсуждение влияния настроек сэмплера на качество изображения. • Рекомендации по удалению создания сэмплера после тестирования. 37:12 Заключение 38:00 Начало тестирования 38:19 Возврат к исходному состоянию 39:06 Анализ изменений 39:17 Возвращение к необработанному изображению 40:46 Повторное тестирование 43:27 Завершение

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