OpenGL vs Vulkan

OpenGL vs Vulkan

Что такое Vulkan?

Vulkan - это новое API для создания 3D приложений. Его разработало Khronos Group, которая занимается и развитием OpenGL. Большой вклад в создание API вложила компания AMD. Хотя и многие другие компании работали над ним, например Microsoft, Apple, Google, Sony. Это API поддерживают такие создатели "железа" как: NVidia, AMD, Intel, Qualcomm, Imagination Technologies, ARM.

Чем отличается Vulkan от OpenGL

Статья на Википедии выделяет 4 основных отличия:

  1. Никаких глобальных состояний, все состояния привязаны к объектам.
  2. Состояния привязываются к буферу команд, а не к контексту, как в OpenGL.
  3. В OpenGL работа с памятью и синхронизация происходит не явно, в Vulkan разработчик будет иметь возможность контролировать это.
  4. Отсутствие проверки на ошибки в драйвере, для ускорения работы.

Исходя из того, что новое API появилось в наши дни и на протяжении 18 месяцев Khronos Group его разрабатывала в тесном контакте с ведущими IT компаниями мира, можно делать вывод, что это API должно лучше подойти для современных 3D приложений.

Ниже вы можете увидеть схему работы Vulkan:

Vulkan render pipeline

Будет ли Vulkan на Mac OS X?

После того как спецификация Vulkan была опубликована, найти драйвера для современных видеокарт не составляет труда. Но это только для Windows и Linux. Так как вулкан это только кроссплатформенный API, который не требует особой поддержки со стороны видеокарт, обновив драйвер, вы можете его начать использовать (если конечно ваша видеокарта в списке поддерживаемых).

Для Mac OS X всё намного сложнее. В El Capitan поддержки Vulkan нет, хотелось бы ждать в следующих версиях, однако есть одно "но". Apple в El Capitan добавила поддержку своего API - Metal. Раньше он использовался только для устройств на iOS. Исходя из этого, а также учитывая тот факт, что Apple привыкло контролировать всё, что касается их устройств, можно сделать вывод, что Vulkan может и не появиться на Mac OS X.

Что дальше?

По моему мнению, что ждёт Vulkan во многом зависит от того, насколько активно его начнут использовать разработчики и поддерживать производители видеокарт. Если развитие OpenGL на этом остановится, то для новых приложений выбора не будет и их придётся разрабатывать на Vulkan. Но существуют тысячи приложений на OpenGL, которые никто так сразу не ринется переписывать на Vulkan. Ещё и вопрос с Mac OS X не ясен, так как это очень распространённая система в США. Если для Mac OS X будет Metal, под Windows - DirectX, а под Linux Vulkan, то Vulkan никак не облегчит разработку кроссплатформенных приложений.

Полезные ссылки

Теги: OpenGL Разработка игр Vulkan