Что такое Vulkan (API)

Доброго вам времени суток.

Хотелось бы познакомить всех желающих с новой API — VULKAN. Это, как вы уже наверное знаете, наследник OpenGL, хотя основан Vulkan API на API Mantle от AMD.

Так же, как и OpenGL, он является кроссплатформенной основой для создания различных приложений для работы с графикой и расчетов.

В отличии от DirectX 12 он не ограничен одной лишь платформой (DirectX 12 ограничен не просто серией операционных систем Windows, но в принципе только лишь Windows 10, что заметно уменьшает сферу деятельности и ценность производимых продуктов)

Vulkan в принципе молодая «платформа», которая вышла в 2016 году, хороших подкастов/инструкций/туториалов и чего-либо подобного на русском языке я еще не встречал, что и сподвигло меня на создание данной серии уроков.

Не однократно читал подобную вещь: Vulkan — это ассемблер для видеокарт. Позволю себе не согласиться с подобным заявлением. Vulkan скорее С++. Он позволяет работать с нижним уровнем, но не обязывает, он является своеобразным ООП языком (отдельные аспекты в нем присутствуют), возможность использовать чужие наработки (но из-за своего малого возраста это пока что не особо актуально), и ряд других вещей. Он так же обязывает программиста внимательно работать с памятью, минимум автоматических систем ему будет помогать. Ну и ряд других нюансов.

В общем Vulkan — это скорее С++, по сравнению с Java (альтернативы). Не секрет, что порог вхождения для программистов Java находится гораздо ниже (что и производит тонны говнокода, которым и ваш покорных слуга иногда злоупотребляет, так что если что вдруг — комментируйте, поправляйте), но скорость разработки по прошествии 3-х лет у программистов С++ выше, и возможности у них тоже шире, так что «думайте сами, решайте сами, иметь или не иметь».

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

The takeaway message here is that Vulkan is not for everyone. It is targeted at programmers who are enthusiastic about high performance computer graphics, and are willing to put some work in. If you are more interested in game development, rather than computer graphics, then you may wish to stick to OpenGL or Direct3D, which will not be deprecated in favor of Vulkan anytime soon. Another alternative is to use an engine like Unreal Engine or Unity, which will be able to use Vulkan while exposing a much higher level API to you.

Что в общем значит — Vulkan явно не для всех. Он создан для тех, кому нужна действительно высокая производительность графики, и кто готов потратить действительно много времени, что бы её добиться. А если вы просто хотите создать компьютерную игрушку — то лучше вам все же воспользоваться OpenGL или Direct3D, с ними на данном поприще Vulkan не будет соревноваться в ближайшее время. Либо же просто используйте готовый движек, на подобии Unreal Engine или Unity.

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

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

 

Main Admin

2 Comments

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

    • Не за что. Но все же рано или поздно нам всем приходится учить язык и переходить на иностранную литературу.

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

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