Поддержка vulkan в видеокартах что это

Что такое Vulkan и DirectX и как они влияют на видеоигры

Поддержка vulkan в видеокартах что это. Смотреть фото Поддержка vulkan в видеокартах что это. Смотреть картинку Поддержка vulkan в видеокартах что это. Картинка про Поддержка vulkan в видеокартах что это. Фото Поддержка vulkan в видеокартах что это

Большинство из нас, геймеров, слышали о Microsoft DirectX. Однако, немногие из нас знакомы с его утилитами и как они влияют на видеоигры. В настоящее время, фактически, приобретя конкурента в форме Vulkan, вещи относящиеся к двум API, как правило, становятся еще более сложными. В этом руководстве мы увидим, что такое API, Vulkan и DirectX, и мы покажим метод, с помощью которого они влияют на наши игры.

Предварительная информация о API

Прежде чем мы начнем говорить о DirectX и Vulkan, нам нужно сначала понять, что такое API. Аббревиатура означает «Интерфейс прикладного программирования».

Интерфейс предназначен для обеспечения связи между двумя объектами. Одним из примеров является графический интерфейс Windows, который играет роль посредника между операционной системой и пользователем.

Интерфейс обеспечивает удобную среду. С помощью этой среды мы используем операционную систему, не зная, как ее функции реализованы в фоновом режиме. Интерфейс прикладного программирования (API) заполняет роль посредника. Однако на этот раз пользователь может быть ПК или другой программой и не обязательно человеком. API-интерфейсы гораздо более распространены, чем можно было бы подумать, предлагая программистам необходимые инструменты для создания своего программного обеспечения.

Поддержка vulkan в видеокартах что это. Смотреть фото Поддержка vulkan в видеокартах что это. Смотреть картинку Поддержка vulkan в видеокартах что это. Картинка про Поддержка vulkan в видеокартах что это. Фото Поддержка vulkan в видеокартах что этоОриентировочный пример, в котором мы используем API, — это когда мы автоматически регистрируемся в новом социальном средстве или онлайн-сервисе, используя наши ранее существующие учетные записи из Facebook или Google (вместо создания новой учетной записи вручную).

В таких случаях веб-сайт использует API, через который он связывается с конкретной услугой (например, Facebook или Twitter), чтобы собирать нашу личную информацию (имя (имена), адрес электронной почты, контактные номера и т. д.) Для создания нашего нового аккаунта.

Тем не менее существует множество других применений API для всех видов взаимодействия между приложениями и компьютерами, такими как системы баз данных, операционные системы и библиотеки программного обеспечения.

В таких случаях использование API-интерфейсов применимо к нашему компьютерному оборудованию и в частности, к нашей графической карте (видеокартам).

DirectX и Vulkan фактически улучшают связь между приложением (игрой) и графическим процессором, чтобы повысить производительность графики.

Поддержка vulkan в видеокартах что это. Смотреть фото Поддержка vulkan в видеокартах что это. Смотреть картинку Поддержка vulkan в видеокартах что это. Картинка про Поддержка vulkan в видеокартах что это. Фото Поддержка vulkan в видеокартах что этоMicrosoft DirectX

С выпуском Windows 95 и модели защищенной памяти разработчики не имели такого же доступа к ресурсам, как в MS-DOS. DirectX впервые появился в виде набора конкретных API для разработки мультимедийных приложений, таких как игры.

Термин «DirectX» начинается со слова «Direct», ссылаясь на прямой доступ к ресурсам системы. Некоторые примеры включают Direct3D для графики и DirectSound для аудио. Часть «Х» относится к API в общей коллекции; таким образом объединив все API-интерфейсы под названием DirectX. Вышеупомянутое название также вдохновило название популярной видеоигр компании Xbox.

Вышеприведенное иллюстрирует тесную связь между DirectX и консолью Microsoft. Его последняя версия, DirectX 12, имеет большие улучшения. Тем не менее он поддерживается только Windows 10 и новейшей игровой консолью компании Xbox One.

Поддержка vulkan в видеокартах что это. Смотреть фото Поддержка vulkan в видеокартах что это. Смотреть картинку Поддержка vulkan в видеокартах что это. Картинка про Поддержка vulkan в видеокартах что это. Фото Поддержка vulkan в видеокартах что этоDirect3D является жемчужиной DirectX и полезен для создания 3D-объектов на нашем экране. Он также позволяет просматривать игры в полноэкранном режиме, а также использовать аппаратные ускорители. Последний метод позволяет реализовать некоторые функции более эффективно, чем они работают в программном обеспечении. Это может быть достигнуто за счет более эффективного использования аппаратного обеспечения нашего компьютера. В этом случае это будет наша видеокарта.

Вулкан AMD

В 2015 году Kronos Group разработала свой собственный API. Vulkan — это низкоуровневый API, используемый для разработки графически требующих приложений. Его первая стабильная версия дебютировала в августе 2016 года.

Следует четко указать, что «низкий уровень» не относится к качеству. Вместо этого этот термин описывает способность Вулкана работать на аппаратном уровне.

Хронос окружает себя одними из самых больших имен в ИТ-индустрии. Некоторые из них — Google, Intel, Sony, Nvidia и AMD. Последние два дали API, свести к минимуму время разработки Vulkan.

OpenGL — популярный API среди графических дизайнеров. Фактически он был разработан Хроносом, и он также включает в себя многие характеристики Вулкана. Однако его прием игровыми дизайнерами был непредвиденным.

Одним из самых сильных активов Vulkan является тот факт, что он с открытым исходным кодом. Кроме того, совместимость Vulkan с несколькими платформами вместе с общей производительностью — это два дополнительных актива, которые делают его более прибыльным, чем DirectX.

Поддержка vulkan в видеокартах что это. Смотреть фото Поддержка vulkan в видеокартах что это. Смотреть картинку Поддержка vulkan в видеокартах что это. Картинка про Поддержка vulkan в видеокартах что это. Фото Поддержка vulkan в видеокартах что этоЗдесь вы можете найти полный список с именами, которые содержат Khronos. Мантия обеспечила основную базу, на которой был разработан Вулкан. Наконец Vulkan в настоящее время находится в версии 1.1.

Как они влияют на игры

До этого момента мы рассмотрели некоторые основы, касающиеся API, Microsoft и Khronos. Но как они влияют на игры?

Эти два API значительно улучшили производительность. До сих пор DirectX, по-видимому, обеспечивал лучшую производительность, чем Vulcan, что на самом деле он не так далеко позади.

Microsoft утверждает, что DirectX 12 снижает потребление на 50% при использовании DirectX 11. С другой стороны, Vulkan также демонстрирует лучшую гибкость, чем его предшественник. Говоря о предшественниках, DirectX 11 и OpenGL были созданы с учетом одноядерных процессоров; что означает, что они не были точно настроены с использованием новых, многоядерных процессоров.

В результате одно ядро ​​управляет большинством различных процессов, в то время как остальные работают с низкой скоростью, а иногда и вовсе отключены. Оба API (DirectX 12 и Vulkan) поддерживают процессоры с несколькими ядрами и потоками, чтобы максимально эффективно использовать свои возможности. Более того, они передают большую часть требуемых задач от процессора к графической карте (видеокартам), предлагая более сбалансированный опыт.

Взаимодействие между этими двумя элементами может существенно повлиять на будущие сборки ПК. Графические карты в значительной степени важнее, чем процессоры, когда дело доходит до игр. С дальнейшим развитием игровых API маловероятно, что процессоры могут стать еще менее важными, когда дело доходит до него. Таким образом, даже с простым процессором мы можем получить хорошую производительность без каких-либо узких мест.

Поддержка нескольких графических карт

Здесь Khronos Group столкнулась со значительным разрывом между двумя API-интерфейсами с поддержкой использования нескольких графических карт (использование явного многоканального GPU). Мы можем использовать разные карты, если их чипы имеют аналогичную архитектуру и используют один и тот же драйвер. Это позволит различным картам обрабатывать другую часть экрана.

Microsoft здесь еще на один шаг впереди, позволяя использовать несколько графических карт даже у другого производителя, что часто бывает, поскольку большинство систем имеют независимый и интегрированный графический процессор. Важно подчеркнуть тот факт, что эти реализации отличаются от возможностей SLI и Crossfire от Nvidia и AMD, которые реализованы с помощью драйверов, и в частности, в случае SLI требуют идентичные графические карты.

Шейдеры

Шейдеры — это небольшие программы, которые запускаются на наших видеокартах. Они отвечают за определенные функции различных объектов в 3D-среде. Тени, туман и освещение в игре являются результатом шейдера.

Vulkan использует промежуточное представление для шейдеров под названием SPIR-V. Его двоичная форма похожа на байт-код DirectX DX.

SPIR-V версия 1.3 отличается SPIR-V opt, инструментом для уменьшения размера шейдеров. Максимальный размер достигает + 40% от байт-кода DX соответствующего представления для DirectX.

Кроме того, некоторые структуры в HLSL (высокоуровневый шейдерный язык), которые были разработаны Microsoft, не поддерживались непосредственно некоторыми видеокартами.

HLSL широко используется DirectX с версии 9. Он использовался в качестве дополнения к существующему языку ассемблера шейдеров. С новой версией SPIR-V Vulkan также поддерживает ее.

Таким образом, разработчики смогут использовать существующий код для своих шейдеров, и им не нужно будет изобретать колесо. Следовательно, игры будут легко перенесены с одной платформы на другую.

Совместимость с несколькими платформами

Что касается платформ, большое преимущество Vulkan заключается в том, что он поддерживает Windows, Linux, Mac OS, Android и iOS. DirectX 12 с другой стороны, поддерживается только в Windows 10 и Xbox One. Чтобы использовать усовершенствования, предлагаемые DirectX 12, нам нужно либо обновить нашу операционную систему до Windows 10, либо получить новую консоль компании.

Если вы хотите попробовать DirectX 12, и вам не удалось получить Windows 10 во время бесплатного обновления, ознакомьтесь с нашим пошаговым руководством по свободным методам модернизации, которые доступны:

Возвращаясь к предыдущей теме, игровой порт, поддерживаемый API Vulkan, будет значительно проще по сравнению с портом, поддерживаемым DirectX.

С одной стороны, мы можем иметь названия на нескольких платформах, а с другой разные операционные системы имеют возможность размещать наши игры. Одна из причин, почему Linux не так популярен, как Windows, связана с тем, что последняя отличается от игр.

Распределение Linux может быть лучшим выбором для размещения наших игр, поскольку он может быть скорректирован для этой цели. Например Steam OS — это специализированная операционная система, предназначенная исключительно для игр.

Также подумайте: компания думает о создании программного обеспечения для разработки игр и хочет поддерживать API. Кто бы вы выбрали?

Оба имеют схожие мощности оба лучшие, чем их предшественники, и оба обеспечивают явное использование видеокарт. Vulkan поддерживает все платформы, включая Windows 10 и Xbox One, в то время как DirectX поддерживает только последние две.

Поддержка vulkan в видеокартах что это. Смотреть фото Поддержка vulkan в видеокартах что это. Смотреть картинку Поддержка vulkan в видеокартах что это. Картинка про Поддержка vulkan в видеокартах что это. Фото Поддержка vulkan в видеокартах что этоВиртуальная реальность

Необходимо сказать, что Vulkan является примером больших улучшений в области виртуальной реальности. Приложение VR должно отображать определенную 3D-сцену с двух разных точек зрения — по одному для каждого глаза.

До этого момента вышесказанное было возможно, отправив все необходимые команды на нашу графическую карту, чтобы сформировать трехмерное изображение для одной перспективы. Подход такой же для перспективы нашего второго глаза.

Версия 1.1 Vulkan предлагает набор команд рендеринга для формирования нескольких, немного разных выходов (изображений), которые в конечном итоге дают лучшую производительность в приложениях VR.

Развитие и будущее

Было бы упущением, не говоря уже о ходе разработки двух API. С одной стороны, у нас есть ветеран DirectX с более чем 20-летним развитием. С другой стороны, Вулкану едва будет 3 года с 2015 года. Тот факт, что Vulkan является открытым исходным кодом, может немного повлиять на его темпы роста. Конечно игроки Khronos, похоже серьезно относятся к разработке API, так как уровни улучшения впечатляют.

Все мы можем создавать новые инструменты и модификации и предоставлять их сообществу, помогая API расти быстрее. Наконец следует упомянуть, что DirectX не имеет вышеуказанной функции. Несмотря на свои годы развития, около 40 игр в настоящее время используют Vulkan, занимая большую часть рынка. Некоторые из них — Quake, Roblox, Talos и Dota 2. Что касается производительности, Vulkan приближается к DirectX, и в некоторых случаях он превосходит его. Самые захватывающие примеры работы Вулкана — игра Doom.

Поддержка vulkan в видеокартах что это. Смотреть фото Поддержка vulkan в видеокартах что это. Смотреть картинку Поддержка vulkan в видеокартах что это. Картинка про Поддержка vulkan в видеокартах что это. Фото Поддержка vulkan в видеокартах что этоVulkan расширил свою поддержку названий AAA, таких как Wolfenstein II, не пренебрегая названиями VR, такими как Doom VFR и Serious Sam VR. Здесь вы можете увидеть подробный список поддерживаемых игр. Хотя здесь вы найдете игры с поддержкой DirectX 12.

Оба API значительно улучшили производительность. Лучшее использование нескольких графических карт и меньшее использование ЦП повысит общую производительность наших систем. По слухам, новые видеокарты от Nvidia будут выпущены к концу лета и значительно превзойдут сегодняшние высокопроизводительные графические карты. В целом, общее состояние вещей кажется довольно гибким. В любом случае, изменения в разработке игр скоро будут у нас, и оба API несомненно будут играть важную роль.

Как вы относитесь к двум API?

Вы уже узнали всю информацию, которую мы предоставили на Vulkan и DirectX? Со временем их соперничество усиливается, какой из двух API вы считаете более полезным для развития игры? Мы с нетерпением ждем ваших комментариев.

Источник

Состоялся релиз API Vulkan 1.2, улучшающий производительность графических процессоров

Поддержка vulkan в видеокартах что это. Смотреть фото Поддержка vulkan в видеокартах что это. Смотреть картинку Поддержка vulkan в видеокартах что это. Картинка про Поддержка vulkan в видеокартах что это. Фото Поддержка vulkan в видеокартах что это

Khronos Group объявили о выпуске спецификации Vulkan 1.2 для графических процессоров. Новая версия включает 23 проверенных расширения в ядро ​​Vulkan API, предоставляя доступ к новым аппаратным функциям, о которых очень сильно просили разработчики. Также была улучшена производительность приложений и повышение удобства использования API.

Том Олсон, инженер Arm и председатель рабочей группы Vulkan, сказал:

«Vulkan 1.2 объединяет около двух десятков высокоприоритетных функций, разработанных за последние два года, в один унифицированный базовый стандарт Vulkan, устанавливая передовую планку функциональности в единственном в отрасли открытом API графического процессора для кросс-платформенного 3D и ускорения вычислений. Khronos будет продолжать предоставлять регулярные обновления Vulkan с этой проверенной методикой, ориентированной на разработчиков. Мы стремимся как удовлетворить потребности, так и расширить горизонты реальных приложений ».

К концу января 2020 года Khronos и сообщество Vulkan также будут поддерживать Vulkan 1.2 в широком спектре компиляторов, инструментов и отладчиков с открытым исходным кодом. Это включает в себя инструмент захвата и отладки фреймов RenderDoc, набор тестов на соответствие Vulkan и SDK Vulkan с поддержкой уровней проверки «GPU Assisted» и «Best Practices».

Наконец, все графические процессоры, которые поддерживают предыдущие версии Vulkan, способны поддерживать Vulkan 1.2, обеспечивая его широкую доступность. На сегодняшний день пять поставщиков графических процессоров имеют версии Vulkan 1.2, прошедшие тесты на соответствие Khronos. Это AMD, Arm, Imagination Technologies, Intel, NVIDIA, а также драйвер Mesa RADV с открытым исходным кодом для AMD.

Источник

Вышла первая версия Vulkan API

В разработке 3D-приложений, видеоигр и систем виртуальной реальности наступает новый этап. Совместными усилиями разработчики сделали важный шаг на пути к унификации кода и более эффективному использованию аппаратных ресурсов. Консорциум Khronos Group, насчитывающий более ста компаний, официально представил первую версию открытого кроссплатформенного API под названием Vulkan (ранее – GLNext). Он обеспечивает непосредственный контроль над ГП и ЦП, устраняя «узкие места» и повышая общую производительность.

Поддержка vulkan в видеокартах что это. Смотреть фото Поддержка vulkan в видеокартах что это. Смотреть картинку Поддержка vulkan в видеокартах что это. Картинка про Поддержка vulkan в видеокартах что это. Фото Поддержка vulkan в видеокартах что это

На форумах часто можно увидеть однотипные вопросы о том, раскроет ли процессор X видеокарту Y и какая конфигурация при одинаковом бюджете будет производительнее в конкретных приложениях. Он возникает из-за того, что современные ГП обладают большей производительностью, чем ЦП того же уровня и поколения. В играх и других 3D-приложениях временами возникают ситуации, когда на ЦП приходится большая нагрузка, а ГП простаивает. Например, процессор обсчитывает взаимодействие игроков и объектов, а видеокарта ждёт от него данные, чтобы отрисовать следующий кадр. Из-за несбалансированности нагрузки возникают задержки, а динамичная игра может превратиться в покадровое слайд-шоу даже с мощной видеокартой.

Указанные проблемы характерны для платформы PC и практически незнакомы владельцами игровых консолей. Разработчики консольных игр всегда знают детальные спецификации приставок и могут выполнять глубокую оптимизацию кода с учётом их особенностей. Компьютеры, ноутбуки, планшеты – это зоопарк не только из разных конфигураций, но и принципиально отличных архитектур. При создании игр для столь разношёрстной платформы приоритетом становится универсальность кода, что негативно сказывается на скорости его исполнения.

Поддержка vulkan в видеокартах что это. Смотреть фото Поддержка vulkan в видеокартах что это. Смотреть картинку Поддержка vulkan в видеокартах что это. Картинка про Поддержка vulkan в видеокартах что это. Фото Поддержка vulkan в видеокартах что это Сравнение Vulkan API и OpenGL (изображение: Khronos Group).

Разработчики операционных систем по-разному пытаются решить проблему низкой эффективности кода сторонних приложений. Microsoft начала искать пути оптимизации графических вычислений давно, однако реальная поддержка низкоуровневых операций появилась только в DirectX 12. Этот API доступен лишь в одной ОС – Windows 10. В свою очередь, положение Apple оказалось ближе к таковому у производителей игровых консолей. Когда одна и та же компания выпускает мобильные процессоры и софт, его согласованной работы добиться куда легче. Тем не менее, пути оптимизации самой разработки игр и приложений у Apple далеко не исчерпаны. В iOS 8 появился Metal API, также ориентированный на использование низкоуровневых операций.

Остальные крупные компании предпочитают действовать совместно и в рамках открытых стандартов. Появившийся 16 лет назад консорциум Khronos Group объединил более ста производителей, включая таких кровных друзей, как AMD, Nvidia и Intel. В своё время консорциум явил на свет открытые стандарты OpenGL, OpenCL, OpenCV и многие другие.

Поддержка vulkan в видеокартах что это. Смотреть фото Поддержка vulkan в видеокартах что это. Смотреть картинку Поддержка vulkan в видеокартах что это. Картинка про Поддержка vulkan в видеокартах что это. Фото Поддержка vulkan в видеокартах что это Khronos Group насчитывает более ста участников.

По сравнению с OpenGL, Vulkan даёт разработчикам возможность использовать низкоуровневые операции без ущерба для переносимости кода. С помощью Vulkan на разных платформах можно достичь почти такого же сбалансированного алгоритма, как на специализированных игровых консолях. Этот API помогает эффективнее использовать аппаратные возможности дискретных видеокарт и интегрированных графических чипов в 2D и 3D-режимах.

Подобно DirectX 12, Vulkan поддерживает прямой доступ к памяти GPU. Дополнительно Vulkan снижает зависимость скорости отрисовки от качества драйверов. За счёт трансляции кода шейдерных программ в промежуточный двоичный формат, их компиляцию можно выполнять уже на этапе разработки, а не во время запуска 3D-приложения.

Vulkan разрабатывается с середины 2014 года. В его основу легли графические библиотеки другого низкоуровневого API – AMD Mantle. Компания AMD также выступала в роли редактора официальных спецификаций. Помимо них Khronos group опубликовала ряд тестов, демонстрирующих преимущество нового API. Все они доступны на портале GitHub.

«У Vulkan есть огромный потенциал, – говорит Дин Секулик (Dean Sekulic), программист Croteam. – Если сказать о нём в одном предложении, то с появлением Vulkan завершилось давнее противостояние между борцами за производительность и переносимость кода. Сейчас мы портируем на него The Talos Principle в подтверждение новой концепции разработки».

Компания Valve спонсирует создание открытого SDK LunarG с поддержкой API Vulkan. Однако несмотря на открытые спецификации, доступные инструменты разработки, возможность глубокой оптимизации кода и другие преимущества, Vulkan ещё какое-то время будет редко используемым API. Большинство игроделов останутся верны DirectX 11/12 и OpenGL. Куда проще повысить системные требования или снизить качество графики, чем осваивать новые способы разработки. Понимая это, консорциум Khronos Group стремиться обеспечить поддержку Vulkan не только в новых ОС и графических решениях, но и на морально устаревших системах.

Сейчас Vulkan поддерживается в среде Windows (начиная с седьмой версии), Linux, SteamOS и Android. В ближайшее время ожидается добавление поддержки ОС Tizen от Samsung. Бета-версии драйверов с поддержкой API Vulkan уже выпустили AMD и Nvidia. На очереди Intel, Qualcomm, ARM и другие производители, входящие в консорциум Khronos Group. Демонстрацию Vulkan на графическом чипе ARM Mali можно увидеть в ролике ниже.

В настоящее время Vulkan можно протестировать на видеокартах с графическими чипами Nvidia GeForce GT 630 и выше, AMD Radeon HD 7700 и новее. Также API Vulkan поддерживает гибридные процессоры AMD с графическим ядром Radeon HD 8500 – 8900 и R2 – R9. Встроенная графика десктопных и мобильных процессоров Intel поддерживается Vulkan начиная с семейства Core пятого поколения.

В полной мере возможности нового API раскроются перспективными графическими процессорами Nvidia серии Pascal и AMD с архитектурой GCN четвёртого поколения. Соответствующие видеокарты предположительно войдут в серию GTX 1xxx и Radeon Rx 400. По неофициальным данным начало их продаж планируется на второй квартал 2016 года.

Источник

Vulkan-tutorial. Урок 1.1 — Вступление

Поддержка vulkan в видеокартах что это. Смотреть фото Поддержка vulkan в видеокартах что это. Смотреть картинку Поддержка vulkan в видеокартах что это. Картинка про Поддержка vulkan в видеокартах что это. Фото Поддержка vulkan в видеокартах что это

В связи с тем, что у меня не так много времени для ресерча каких-то новых штук и написания статей о них, я решил перевести серию уроков по Vulkan. Надеюсь, что мои переводы будут кому-то полезны и не очень плохого качества. Для начала обучения — прошу под кат.

Автор оригинала дал свое согласие на перевод. Также, когда я доперевожу все статьи и у меня будет время отформатировать их для github, он добавит русский перевод на свой сайт.

В этой части не будет ничего технического, так как я решил сохранить структуру оригинала. Будет рассказано немного о Vulkan, структуре уроков, ссылки на книги и тд.

Часть 1. Вступление

Часть 2. Первый треугольник

Часть 3. Vertex buffer

Часть 4. Uniform Buffer

Часть 6. Буфер глубины
Часть 7. 3D Модели
Часть 8. Mipmaps
Часть 9. Multisampling

Описание

В этих уроках вы научитесь основам Vulkan API. Vulkan это новый API созданный компанией Khronos group (создатели OpenGL), он предоставляет улучшенную абстракцию для программирования графики на современных видеокартах. Новый интерфейс поможет лучше описать как ваше приложение будет работать с графическим процессором, что потенциально может увеличить производительность и уменьшить неожиданные ситуации, связанные с поведением драйвера по сравнению с существующими API, такими как OpenGL и Direct3D. Идеи, лежащие в основе Vulkan, аналогичны идеям Direct3D 12 и Metal, но Vulkan имеет одно неоспоримое преимущество — полную кросс-платформенность, что позволяет разрабатывать приложение одновременно под Linux, Windows и Android.

Взамен, вам придется работать с менее абстрактным и более сложным API. Каждая мелочь, связанная с API, будет настраиваться вами с нуля, включая создание начального буфера кадров и управление памятью для объектов (буферы, текстуры и тд.). Драйвер будет меньше вас ограничивать, а это означает, что вам придется проделать больше работы, чтобы обеспечить правильное поведение вашего приложения.

Вывод — Vulkan не для всех. Он создан для программистов, которым нужно больше производительности, несмотря на более сложный и кропотливый процесс написания приложения. Если вы заинтересованы разработкой игр больше, чем программированием компьютерной графики, то вы можете и дальше использовать OpenGL или DirectX, в любом случае они по-прежнему поддерживаются и не будут вытеснены Vulkan(ом) в ближайшее время. Как альтернативу, можно использовать какой-то игровой движок (Unreal Engine, Unity и тд.), который будет использовать Vulkan, но предоставит вам свою высокоуровневую абстракцию над базовым API.

Теперь давайте рассмотрим что вам надо для изучения Vulkan:

Рекомендую обновить драйвера на видеокарту.

В этой серии уроков от вас не требуется знания OpenGL или DirectX, но предполагается, что вы знакомы с основами 3D графики. Например, тут не будет объясняться математика, лежащая в основе перспективной проекции. Для понимания основ компьютерной графики рекомендую прочесть эту книгу. Другие хорошие ресурсы по графике:

Мы будем использовать С++, но вы также можете писать и на чистом С. Если будете использовать С, вам придется использовать другую библиотеку для линейной алгебры, так же самостоятельно структурировать код, так как мы будем использовать классы для структурирования кода и RAII для управления временем жизни ресурсов. Также существует альтернативная версия руководства для разработчиков на Rust.

Для того, что бы разработчикам на других языках было проще понять, как работать с базовым API, мы будем использовать С версию Vulkan API. Однако, вы можете использовать C++ API, который немного упростит жизнь и поможет избежать некоторых ошибок.

Поддержка vulkan в видеокартах что это. Смотреть фото Поддержка vulkan в видеокартах что это. Смотреть картинку Поддержка vulkan в видеокартах что это. Картинка про Поддержка vulkan в видеокартах что это. Фото Поддержка vulkan в видеокартах что это

Посмотри на котика и расслабься.

E-Book

Также вы можете скачать это руководство в формате электронной книги (нет русского):

Структура уроков

Для начала мы разберемся с тем, как работает Vulkan, и по шагам разберем, что нам нужно для отрисовки нашего первого треугольника на экране. Мы будем продвигаться маленькими шажочками, смысл которых поначалу будет вам не очень понятен, но потом вы поймете их роль когда увидите картину в целом. Следующим шагом будет настройка среды разработки Vulkan SDK, GLM для линейной алгебры и GLFW для создания окна. В уроках будет показано, как настроить все под Windows + Visual Studio и Ubuntu Linux + GCC.

После чего мы реализуем все основные компоненты для отрисовки нашего первого треугольника. Каждая глава будет иметь примерно следующий вид:

Каждая глава написана как продолжение предыдущей, но вы также можете читать их как отдельные статьи, знакомящие вас с определенным функционалом Vulkan, то есть вы можете использовать этот сайт как справочник по функционалу. Все функции и типы Vulkan, описанные тут, будут иметь ссылки на спецификацию, поэтому вы можете ознакомится с ними более подробно. Vulkan — новый API, поэтому в спецификации могут быть некоторые неточности или нехватка информации. Если столкнетесь с какими-то погрешностями, не стесняйтесь и оставляйте отзыв в этом репозитории.

Как упоминалось ранее, Vulkan API достаточно низкоуровневый с множеством настроек, что даёт вам максимальный контроль работы графического конвейера. Это вынуждает нас повторно выполнять большое количество шагов по многу раз. Чтобы этого избежать, мы будем стараться выносить такой функционал в отдельные вспомогательные функции.

Также в конце каждой главы будет прилагаться исходный код (включая предыдущие уроки). Вы всегда можете заглянуть туда, если у вас возникнет какая-то ошибка и вы захотите сравнить код или будут сомнения в его структуре. Весь код тестировался на нескольких видеокартах от разных производителей, чтобы исключить ошибки, связанные с железом, и проверить корректность исходников.

Вы всегда можете задать вопрос, относящийся к конкретной теме. Пожалуйста, указывайте в коментариях вашу платформу, версию драйвера, исходный код, ожидаемое поведение и фактическое поведение, чтобы люди могли быстро сориентироваться и помочь вам.

На сайте с оригиналом статьи есть раздел комментариев под основным блоком.

Vulkan — это все еще новый API и best practices еще не сформировались. В случае, если у вас появились какие-то советы, отзывы об учебнике или самом сайте, не стесняйтесь и оставляйте ваши запросы или исправления (можно пулл-реквесты на GitHub). Также можно следить за обновлениями руководства в репозитории.

После выполнения ритуала с рисованием треугольника мы начнем расширять нашу программу. Будем добавлять текстуры, модели и тд. Если у вас уже был опыт графического программирования, то вы знаете, что перед тем, как на экране что-то появится, нужно выполнить много шагов инициализации, создания буферов и тд. В Vulkan этих шагов на порядок больше, но не волнуйтесь, каждый шаг легко понять и вы поймете, что ни один из них не является лишним. Могу обрадовать, переход от скучного треугольника до отрисовки полноценной 3D модели с текстурами не потребует такого большого количества шагов и усилий от нас.

Как правило, рисование треугольника в программировании графики, это как написание «Hello world!» при изучении языка.

Если вы столкнетесь с какими-либо проблемами, следуя руководству, сначала проверьте FAQ, чтобы увидеть, есть ли там ваша проблема и ее решение. Если решение так и не было найдено, не стесняйтесь обращаться за помощью в разделе комментариев в главе.

От переводчика:
Ребят, кому интересен данный цикл статей, поставьте лайк или отпишите в комменты, чтобы я знал нужно оно или нет. Если вы заинтересованы, то постараюсь быстро и качественно перевести следующую статью.

Также буду очень рад, если вы будете сообщать мне о всех ошибках, опечатках и предложениях по улучшению переводов. Перевод и написание статьи заняло у меня около дня и никто кроме меня ее не проверял так что могут встречаться ошибки и опечатки.

Огромное спасибо за исправление моих ошибок и опечаток:
maxzhurkin
Mingun
Также всем остальным и модераторам хабра 🙂

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *