Vulkan Learning — 3. Swapchain. Depth Buffer. Render Pass. Framebuffers

Речь пойдет об инфраструктуре предназначенной сугубо для отрисовки и отображения графики на экране. Напомним, что отрисовка изображения суть присваивание значений всем его пикселям. Изображение хранится в оперативной памяти, а, будучи отрисованным, отображается на экране монитора. Участок памяти, в котором хранится изображение, часто называется фреймбуфером. Традиционно используется как минимум два фреймбуфера — один из них отображается на экране а то время как GPU рисует изображение в другом, после чего фреймбуферы меняются местами (swap). Это называется двойная (потому что буферов два) буферизация. Читать дальше …

Vulkan Learning — 2. Surface. Physical Device. Logical Device. Command Queues

Поверхность (Surface) Следующий шаг после создания Instance — создание поверхности (Surface). Vulkan использует абстракцию Surface для представления нативной оконной подсистемы имеющейся операционной системы. В каждой операционной системе имеется своя функция для создания поверхности и, соответственно, свое расширение (extension), частью которого является эта функция. Для Windows существует расширение VK_KHR_win32_surface. Однако поддержка поверхностей как таковых сама является расширением (поскольку не во всех случаях графику нужно выводить на экран — см. offscreen rendering) — VK_KHR_surface. // THE FOLLOWING IS PSEUDOCODE! // Field vk::SurfaceKHR Читать дальше …

Vulkan Learning — 1. Установка. Инициализация. Instance. Отладка

Недавно я завершил прохождение видеокурса по Vulkan, и спешу законспектировать информацию, пока она не выветрилась из моей дырявой головы. Литература Vulkan Tutorial LunarG Vulkan Samples Tutorial API without Secrets: Introduction to Vulkan by Pavel Lapinski Understanding Vulkan Objects Vulkan Guide Writing an efficient Vulkan renderer Samsung GameDev Resources Vulkan Specification Мой репозиторий для поделок на Vulkan Установка Vulkan SDK Скачивается с сайта LunarG. Кроссплатформенный SDK, переносим на разные платформы на уровне исходного кода (в коде присутствуют директивы условной компиляции). Включает Читать дальше …