Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the antispam-bee domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/ruwritingagame/public_html/wp-includes/functions.php on line 6121
OpenGL ES vs Vulkan vs Angle – Игра в Написание Игры

OpenGL ES vs Vulkan vs Angle

Конечно, меня мучали сомнения по поводу выбора OpenGL ES.

  • Действительно ли он прям ТАКОЙ кросс-платформенный?
  • Может, надо было выбрать Vulkan? Или что-то еще?
  • Готов ли я пожертвовать поддержкой Apple ради такого выбора?

Теперь у меня есть и ответы:


Vulkan

Не будем углубляться здесь насколько он хорош (а он и правда хорош):

  • Скорострельный
  • Поддерживает много-ядерность
  • ОЧЕНЬ хардверно-ориентированный

Однако меня больше интересует насколько он кросс-платформенный. Оказывается, не совсем.

  • Не все GPU его поддерживают (по крайней мере пока)
  • Apple уже объявил, что отказывается от поддержки Vulkan-а (как и OpenGL-а) в пользу своего Metal
  • Кроме того, совсем не прост в использовании
  • Предназначен для driver-level программирования, не для apps

А главное, он даже НЕ кросс-GPU !! Он GPU-specific, так что Vulkan программы для AMD и для, скажем, Nvidia будут отличаться!

Вобщем, пожалуй, правильно, что выбрал не его…


OpenGL ES

Ситуация с OpenGL ES выглядит для меня гораздо более оптимистично и обнадеживающе. Почему? Потому что:

  • Работает практически на всех GPU
  • ДОСТАТОЧНО быстрый и мощный
  • Концептуально очень чистый и последовательный
  • Требуется WebGL-ом, а значит: браузеры на ВСЕХ платформах (включая Apple) в итоге будут ДОЛЖНЫ его поддерживать. Поверьте, Google (как главный продвигатель и интересант WebGL-а) НАЙДЕТ как всех “убедить” следовать его стандарту.

Angle

Гугловский проект Angle (Almost Native Graphics Layer Engine) – неплохая иллюстрация к моему предыдущему тезису. Я раньше не знал, но главная задача этого Проекта – это кросс-платформенная поддержка WebGL-а. Это драйвер, который переводит вызовы OpenGL ES в нативные для данной платформы (если это Apple – то в Metal).

  • Отметим, что это правда ТОЛЬКО для OpenGL ES, другие API-и не покрывает.

Пока Apple поддерживает OpenGL и так, но скоро (при достаточной последовательности и настойчивости) может и перестать. Но для Angle это проблемой не станет, он все-равно примет OpenGL ES команды, и отработает их хоть на Metal-е, хоть на чем-то еще что окажется у него под рукой.

Кстати, Angle может отрабатывать их и на Vulkan-е (если надо).


Вывод:

Я безмерно рад и благодарен (себе же), что изначально выбрал OpenGL ES. Это был действительно мудрый (и наилучший) выбор.

  • Не пробовал пока на Mac-е или на iPhone, но одно ясно: с Энглом или без, но работать это будет. Не говоря уж о других платформах

Leave a Reply

Your email address will not be published. Required fields are marked *