После нескольких задержек группа Khronos выпустила версию 1.0 API Vulkan, которую часто называют версией OpenGL следующего поколения. Как это изменит ситуацию?
Графические программисты, похоже, живут своей жизнью в потоке времени, обращенном вспять, по сравнению с любым другим программистом на планете. В других областях движение идет в сторону все возрастающей абстракции и сокрытия деталей аппаратного обеспечения. Графические программисты в прошлом делали шаги в этом направлении с помощью 3D — API, таких как ранние версии DirectX, которые работали в «сохраненном режиме», но сегодня движение отходит от таких вещей и возвращается к аппаратному обеспечению-ну, в некотором роде.
Есть много графических программистов, которые очень довольны уровнем абстракции в API, таких как OpenGL, и, возможно, хотели бы, чтобы вещи продолжали развиваться таким образом. Однако графика по-прежнему является сложной вычислительной задачей, и, хотя другие области программирования выиграли от достаточного улучшения аппаратного обеспечения, чтобы позволить себе абстракцию программного обеспечения, графика всегда нуждается в еще большем количестве аппаратного обеспечения. Даже при наличии графических процессоров для ускорения работы необходимо учитывать конкретные возможности аппаратного обеспечения, чтобы выжать последнюю каплю производительности. На самом деле наличие графических процессоров сделало это еще более привлекательным, поскольку высококачественная графика в реальном времени только что была недоступна.
Проще говоря, для сообщества 3D CAD OpenGL более чем достаточно, и его стоит использовать для упрощения, которое он предлагает. Для графического программиста реального времени пришло время перейти на Вулкан и заплатить цену повышенной сложности и аппаратной зависимости.
Vulkan-это разработка на основе фирменного низкоуровневого API AMD, и он стоит рядом, а не заменяет OpenGL. На данный момент общая поддержка невелика, поэтому не ожидайте увидеть много новых игр, которые работают в 10 раз быстрее, чем старые. Nvidia выпустила драйвер, который проходит тесты на соответствие для Windows и Linux. Есть драйвер от Qualcomm, который проходит тест для Android, но бета-драйвер AMD еще не достиг соответствия.
Vulkan конкурирует с последней версией DirectX, т. е. версией 12, и с металлическим API Apple. Однако Металл не такой низкий уровень, как Вулкан — это скорее что-то между DirectX 11 и 12. Утверждается, что разработка с использованием Vulkan имеет огромное преимущество в том, что она независима от платформы и имеет открытый исходный код, в то время как DirectX 12 привязан к Windows 10, а Metal привязан к Apple. Самая большая проблема заключается в том, что для Вулкана это очень ранние дни, и у него мало инструментов.
Возможно, в один прекрасный день аппаратное или, что более вероятно, программное обеспечение разовьется до такой степени, что графические программисты смогут присоединиться к мейнстриму и начать двигаться в сторону большей абстракции и дальше от аппаратного обеспечения. До тех пор у нас есть Вулкан 1.0.