|
Vulkan API е пакет от кросплатформени програмни интерфейси от най-ниско ниво, които осигуряват много по-висока производителност на 3D графиката. Това се постига чрез значителното намаляване на задръжките в сравнение с другите API от типа на OpenGL, особено при използването на специалните функции на GPU. При грамотна реализация, Vulkan осигурява „от маргинално до полиномиално повишение на скоростта в сравнение с другите API при един същ хардуер“.Khronos Group представи Vulkan API по време на конференцията GDC 2015, а първата версия излезе през месец февруари 2016 година. Първоначално Vulkan API се наричаше следващото поколение OpenGL или просто glNext, но след това името бе променено на Vulkan. Мнозина с нетърпение очакваха излизането на тази революционна технология, която силно ускорява 3D графиката и намалява натоварването на централния процесор, подобно на Direct3D 12, Metal и Mantle. Но се появи проблем – Vulkan API изисква много по-големи усилия от програмистите, докато в същото време програмните интерфейси от по-високо ниво, като OpenGL и DirectX 11 опростяват много неща, като например работата с паметта. За улесняване на работата с Vulkan, компанията AMD създаде специалната среда и слоя абстракции V-EZ. А сега публикува сорс кода на този полезен инструмент под MIT лиценза. Кодът може да бъде изтеглен от GitHub. V-EZ излезе през месец март 2018 година и бе със затворен код. Но сега това ограничение е премахнато. 
V-EZ е междинно ниво (middlware), което поема редица помощни функции при разработването. По този начин програмистът не е задължително да знае и ръчно да пише всички тънкости на Vulkan, Много неща V-EZ върши самостоятелно. Тази среда използва същата семантика като Vulkan API и дори може да се използва като обучаващ инструмент. Започвайки с V-EZ, разработчикът може постепенно да разучи технологията и в крайна сметка да премине към директното използване на Vulkan. Това означава и че документацията за Vulkan е приложима за V-EZ. Преимуществата на Vulkan в сравнение с другите API:Vulkan API е подходящ както за високопроизводителните видеокарти за десктоп процесори, така и за графичните ускорители в чиповете на мобилните устройстваЗа разлика от Direct3D 12, Vulkan се поддържа в почти всички операционни системи и не е ограничен в рамките на само една ОС. Още от самото начало Vulkan работи с Android, Linux, Tizen, Windows 7, Windows 8 и Windows 10, има поддръжка и за OS и macOSУлеснена е поддръжката на драйверите, а натоварването на CPU сериозно се намаляваДопълнително намаляване натоварването на централния процесор чрез пакетна обработкаМного по-добро мащабиране за многоядрените процесориПредварителната компилация на шейдърите повишава скоростта на инициализация, а и за всяка сцена могат да се използват по-голям брой шейдъри. В драйвера е необходимо само да се добави определена оптимизация за графичния процесор и за генерирането на кода. Това опростява обслужването на драйверите и намалява техния размер
Въпреки че създатели на Vulkan API са Khronos Group, самата технология се базира на Mantle API, която компанията AMD безвъзмездно подари на Khronos Group. Идеята е да се създаде по-съвършена технология, която не е обвързана с конкретен производител и която може да стане всеобщ стандарт. Ето защо AMD и сега помага в развитието на Vulkan API и създава удобни инструменти, като например V-EZ. Изисквания за инсталирането на Vulkan API:64-битова Windows 7, 8.1, 1064-битов Linux (тествано с Fedora и Ubuntu)Visual Studio 2015 или по-нова версияGCC 4.9 или по-нова версияCMake 3.8 или по-нова версияLunarG Vulkan SDK 1.1.70Да напомним, че V-EZ не е обвързана с никой производител и работи на хардуер, който не е на AMD. Създателите на V-EZ се надяват, че публикуването на сорс кода с отворен лиценз ще популяризира средата и ще се появят нови бързи програмни интерфейси от ниско ниво. А това ще подобри скоростта на игрите и ще способства за появата на повече кросплатформени игри. Към днешен ден Vulkan се поддържа от много геймърски енджини. Включително Source 2, Serious Engine 4, Unreal Engine 4, Torque 3D, id Tech 3, id Tech 4, id Tech 6, Xenko, Unity, CryEngine, Intrinsic, Unigine, Abyss Engine, Banshee 3D и Godot. |
|