Ранее в интернете активно велись споры, что лучше: DirectX или OpenGL. Сейчас данная тема уже не такая актуальная, но все же нередко пользователи ей интересуются. Мы решили собрать всю достоверную информацию и опубликовать ее в виде сравнения обоих продуктов.
Содержание
Сравнение
Стоит отметить, что раньше на свет появился именно OpenGL. Кроме того, он был установлен на ранних версиях Mac OS и Linux. Пресловутая Windows в то время была еще в состоянии эмбриона и ни о каком DirectX речи даже не шло.
Однако со временем компания Microsoft выпустила собственный графический API, который стал широко известен. Его популярность связана главным образом с тем, что он используется в самой популярной ОС.
А еще именно DirectX предпочитают многие разработчики игр. Справедливости ради стоит отметить, что некоторые из них добавляют в свои творения также OpenGL и даже Vulkan. Но таких игрушек катастрофически мало.
Так чем же так хорош API от Microsoft? Мы попробуем разобраться в данном вопросе. Но сначала рассмотрим ключевые особенности обоих проектов только потом вынесем вердикт по части их «крутости».
Поддержка расширений
Естественно, у DirectX такого и близко нет, так как это проприетарный продукт и изменения в него вносятся исключительно компанией Microsoft. Так что если производитель видеокарты и добавил какую-нибудь интересную опцию в драйвер, то в этом API она появится нескоро.
А с какой периодичностью выходят обновления для Директ Икс и без того всем известно. В лучшем случае – раз в три года. Это означает, что пользователи не увидят новых фишек до тех пор, пока ребята из Microsoft не соизволят выпустить новую версию.
С OpenGL ситуация другая. Это свободный АПИ, распространяющийся под лицензией GNU/GPL и правки в него вносятся всем сообществом. В которое, кстати, входят и ключевые производители видеокарт. Корпорации AMD и NVIDIA там точно есть.
Поэтому им не нужно кого-то ждать для того, чтобы добавить поддержку нового функционала в графический API. Это значит, что ОпенГЛ может использовать новый функционал сразу после добавления его в драйверы. И это первое преимущество свободной технологии.
Кроссплатформенность
И снова DirectX становится аутсайдером. Данный API предназначен для использования исключительно на операционных системах Windows. При этом на XP используется всего лишь версия 9.0с. А вот 10 и тем более 11 на нее нет и никогда уже не будет.
Помимо Windows данный API еще можно увидеть на игровой приставке XBOX One (и разных ее ревизий). Но эта консоль – детище компании Microsoft. Поэтому ничего удивительного здесь нет. Вы не поверите, но версий DirectX нет даже для культовой Mac OS! И о чем думает компания из Редмонда?
Совсем не то с OpenGL. Этот API используется практически во всех известных операционных системах. Он без проблем работает на Windows, Linux, Mac OS и даже FreeBSD. Хотя последняя и вовсе не предназначена для «графических излишеств».
Такая кроссплатформенность сделала свое дело. К примеру, компания Blizzard выпускает свой культовый World of Warcraft для Mac OS исключительно под Опен ГЛ. Да и на PC-версии игра способна работать как под DirectX, так и под свободным API.
Работа в профессиональных программах
И здесь побеждает ОпенГЛ. Именно этот АПИ признается профессионалами. И все потому, что он поддерживает все последние фишки видеокарт, прописанные в драйверах. А это значит, что разработчики получат новые возможности.
И нова стоит поговорить о простоте данного API. Работать с ним гораздо проще, так как здесь упорядоченный код и масштабные комментарии к нему. Именно поэтому во многих ВУЗах начинают профессиональное обучение с OpenGL.
А вот с DirectX все намного хуже. Компания Microsoft по своему обыкновению наворотила в коде таких громоздких конструкций, что с ними разберутся только профессионалы высшей пробы. Простым смертным сие не дано.
Единственное преимущество ДиректХ в этом плане – богатый инструментарий SDK. Он несколько облегчает разработку. Но даже с SDK она далеко не всем по плечу. Да и для нужд профессионалов этот API никак не подходит. Слишком он тугой на обновления.
Производительность в играх
Вот здесь свободный API сильно отстает от проприетарного. Складывается такое впечатление, что DirectX даже специально создан для игр. Ведь он показывает впечатляющие результаты даже несмотря на все фишки свободного API.
К примеру, в игре The Talos Principle (не первой свежести игрушка) на видеокарте AMD Radeon R9 Fury X при разрешении 4К и ультра настройках графики получилось 643 кадра в секунду. Такой показатель FPS избыточен.
А вот OpenGL в таких же условиях и с такой же видеокартой показал намного более скромный результат. Количество кадров в секунду едва достигло 35. Это приемлемый ФПС для неискушенного геймера, но с предыдущими цифрами его не сравнить. Аналогичная ситуация и с графическими адаптерами от Nvidia.
К сожалению, свободный API оказался совершенно не готов к такому «сражение». И с чем это связано – непонятно. Вроде бы разработчики оперативно добавляют в него новые опции. И драйвера (даже самые новые) его поддерживают.
Вердикт
Так что же все-таки лучше? Директ Х или Опен ГЛ? Все зависит от того, для чего вы будете использовать графический API. Сфера применения многое значит. Ведь в профессиональной области первый продукт значительно отстает от второго.
Но среднестатистического пользователя всякий профессиональный софт не интересует. Ему важно, чтобы игры шли нормально. А наиболее высокую производительность в игрушках показал именно DirectX. Его и будут использовать миллионы.
В выборе API также огромную роль играет ОС. К примеру, та же Windows нормально не поддерживает OpenGL. Его использование возможно только при установке драйверов от производителя. А кому охота плясать с бубнами?
Вот и получается, что менее продвинутый DirectX является наиболее предпочитаемым API для тех, кто использует исключительно Windows и любит игры. А ведь таких пользователей большинство. Потому и популярность этого API зашкаливает.
Заключение
А теперь подведем итоги. Мы попытались беспристрастно выбрать лучший графический API из двух. По всем показателям получается, что в техническом плане лучше выглядит продукт, распространяемый под лицензией GNU/GPL.
И тем не менее, победителем вышел продукт от Microsoft. Потому, что он гораздо лучше оптимизирован для игр и самой операционной системы Windows. Даже несмотря на то, что в техническом плане он существенно уступает.