Что лучше directx 11 или opengl
Перейти к содержимому

Что лучше directx 11 или opengl

  • автор:

Сравнительный тест DirectX 11, OpenGL и Vulkan

На минувшей неделе был представлен API Vulkan, о широкой поддержке которого заявили AMD и NVIDIA. Новый графический интерфейс разрабатывал Khronos Group, консорциум, основанный в 2000 году. Khronos Group отвечает за разработку и поддержку открытых стандартов в сфере мультимедийных приложений на разных платформах и устройствах. Консорциум поддерживают AMD и NVIDIA, а также многие другие компании.

На минувшей неделе была ратифицирована финальная версия 1.0 API Vulkan. AMD и NVIDIA представили соответствующие бета-драйверы. AMD заранее выпустила бета-версию Radeon Software еще 14 февраля. NVIDIA представила драйвер GeForce 356.39, который тоже ориентирован на поддержку API Vulkan.

Подход API Vulkan очень похож на API Mantle. Суть заключается в том, чтобы разработчики получили более глубокий доступ к «железу», чтобы выжать из него максимум. Такой подход позволяет максимально избежать существующих «узких мест». С другой стороны, разработчики должны точно знать, что они делают – например, при работе с памятью. Интерфейс OpenGL не так популярен, как DirectX, но позволяет выжать больше.

Интерфейс API Vulkan в версии 1.0 поддерживается под Windows 7, Windows 8.1, Windows 10, Android и Linux. Разработчики игр пока что не объявили о поддержки в конкретных играх, но здесь стоит дождаться Games Developer Conference, которая будет проводиться с 14 по 18 марта в Сан-Франциско. Из игровых движков пока есть информация о Source 2, который уже поддерживает API Vulkan. Процесс отладки облегчается поддержкой Valve, LunarG и Codeplay.

The Talos Principle

Хорошо, но какая игра или движок поддерживают API Vulkan? Игра The Talos Principle разрабатывалась компанией Croteam, которая и в прошлом была известна поддержкой многих графических API. И в последней итерации игра The Talos Principle не стала исключением – она поддерживает DirectX 9, DirectX 11, OpenGL и теперь Vulkan. Для студии разработчиков Vulkan является пробным шаром, хотя API Vulkan доступен в версии 1.0, поддержка пока находится в бета-стадии. На добавление поддержки разработчики Croteam затратили порядка трех месяцев. Но универсальный характер API позволяет вскоре представить вариант Linux.

API Vulkan теоретически совместим с несколькими платформами – но пока что тесты и сравнения можно провести только под Windows, причем здесь имеются свои ограничения. Реализация пока остается на очень раннем этапе. Путь рендеринга DirectX 11 совершенствовался многие годы, поэтому потенциала для оптимизации здесь уже нет. Здесь ситуация больше зависит от разработчиков драйверов, а именно AMD и NVIDIA. Игра The Talos Principle стала первой с поддержкой Vulkan. Поэтому пока нет возможности сделать сравнительный тест для оценки хорошей или плохой реализации поддержки.

the-talos-principle-1

Новые технологии первое время реализуются в примерах, подготовленных производителями. В случае DirectX 12 акцент был выставлен на Draw Calls, тот же тест 3DMark DirectX 12 опирается только на измерение производительности Draw Calls, игры DirectX 12, подобные Star Wars, тоже пытаются задействовать подобную нагрузку. Но The Talos Principle не так сильно зависит от высокой скорости Draw Call, чтобы низкоуровневый API дал большую разницу.

Поддержка API Vulkan версии 1.0 находится на ранней стадии, то же самое касается драйверов AMD и NVIDIA. Оба драйвера, по сути, относятся к бета-версиям, именно так их рассматривают производители GPU. Здесь обычно нет новых улучшений производительности или поддержки новых технологий, так что мы получаем шаг назад. Но как только определенный уровень разработки будет достигнут, драйверы обоих разработчиков GPU получат поддержку Vulkan в финальной версии. Когда это произойдет – не совсем понятно. Но пока ключевые приложения не используют Vulkan и игры с поддержкой API находятся в состоянии бета-версии, так что разработчики GPU могут спокойно дорабатывать свои драйверы.

Для тестов мы взяли нашу тестовую систему для видеокарт. Драйверы видеокарт AMD и NVIDIA мы уже описали выше. В настройках мы выставили максимальный уровень графики, но при этом протестировали и низкие разрешения вплоть до 1.280 x 720 пикселей, чтобы увеличить производительность Draw Call.

Benchmarks zu The Talos Principle - 1.280 x 720 Pixel Тест The Talos Principle — 1.280 x 720 пикселей
Benchmarks zu The Talos Principle - 2.560 x 1.440 Pixel Тест The Talos Principle — 2.560 x 1.440 пикселей
Benchmarks zu The Talos Principle - 3.840 x 2.160 Pixel Тест The Talos Principle — 3.840 x 2.160 пикселей

Как можно видеть по результатам, API Vulkan дает существенный прирост по сравнению с OpenGL. Но до производительности DirectX 11 новый API не дотягивает. Тому есть несколько причин. С одной стороны, разработка под Vulkan находится в ранней стадии. Это касается и самого API, и драйвера, и игры The Talos Principle. По сравнению с OpenGL новый интерфейс позволяет освободить часть ресурсов и избежать «узких мест». Но DirectX много лет совершенствовался до текущего уровня. В любом случае, потенциал у API Vulkan очень хороший.

Если погрузиться в детали, то визуальных отличий между API Vulkan и DirectX 11 мы не обнаружили. Так что путь рендеринга очень хорошо адаптирован. У текущей реализации The Talos Principle видеокарты с 2 Гбайт памяти получают падение производительности, вероятно, из-за не самой эффективной работы с памятью. Как и Mantle и DirectX 12, API Vulkan может обращаться к ресурсам памяти на более глубоком уровне – сей факт можно рассматривать как преимущество, но он может стать и недостатком, если разработчики не смогут эффективно использовать память.

Несколько разочаровала ошибка в текущем драйвере NVIDIA, из-за которой после каждого теста приходилось перезагружать систему. Без перезагрузки игра «вылетала». Хотя с драйвером AMD мы не обнаруживали подобной ошибки.

Нынешняя реализация API Vulkan кажется обещающей. Пока что для игр на настольных ПК она будет не такой актуальной, поскольку рынок DirectX 11 и 12 очень велик, и по сравнению с тем же DirectX 12 затраты на реализацию могут быть слишком велики, а отдача слишком мала. Но если игры необходимо запускать на разных платформах с разными аппаратными требованиями, Vulkan может сыграть важную роль. В любом случае, следует дождаться реакции со стороны разработчиков игр, иначе мы получаем проблему курицы и яйца, из которой сложно выйти.

DirectX против OpenGL: что лучше или кто победит?

DirectX против OpenGL

Здравствуйте, дорогие посетители моего блога! Сегодня мы с вами окончательно выясним, что лучше — DirectX или OpenGL в играх и детально проведем небольшое сравнение. О том, что такое Vulkan RT и для чего он нужен, вы можете почитать здесь.

Выбираем между DirectX и OpenGL

Главное отличие между ними в том в том, что Директ имеет закрытый заточен под операционную систему Windows и в другой среде попросту не работает. OpenGL распространяется с открытым исходным кодом и подходит для любой платформы, которая может его поддерживать.

Это, например, Unix-системы, в том числе Android и iOS, которые сегодня являются весьма популярными игровыми платформами, а также ряд игровых консолей.

Любой энтузиаст может модифицировать эти библиотеки согласно собственным потребностям и использовать эти наработки при создании видеоигр.

Вне 3D графики вообще и видеоигр в частности ни DirectX, ни OpenGL не используются, так как не имеют необходимого инструментария для выполнения других задач.

Какой графический рендеринг лучше

Для игр под Windows поддержка OpenGL реализована слабо — список приложений, где можно активировать этот инструмент вместо DirectX, ограничивается парой десятков.

Самая известная и популярная из них — MOBA Dota 2. OpenGL любят инди-разработчики и добавляют его поддержку в свои проекты, часто криво и не доведя до ума.

DirectX — совсем другое дело. 9, 10 или 11 его версии скачивались отдельно, а вот 12 уже включена в базовый пакет Windows 10. На подавляющем количестве персональных компьютеров именно Виндовс и установлена в качестве операционной системы, а PC сегодня остается самой популярной игровой платформой.

Соответственно, для игр разработчики стараются максимально полно реализовать поддержку DirectX.

OpenGL, Vulkan RT и прочие подобные инструменты не составляют серьезной конкуренции и являются скорее экзотикой. Игры с их поддержкой не создаются массово в таком количестве, чтобы рассматривать это явление всерьез как достойное внимания.

Что касается производительности, то нужно рассматривать производительность конкретной игры. Да, некоторые видеоигры на OpenGL дают качество графики лучше, но это скорее исключение, чем правило. В основной массе тестов же DirectX обычно дает больший FPS при тех же настройках качества.

Что касается эмуляторов Андроид на Виндовс, например BlueStacks, Nox или LD Player, то тут ситуация немного другая. Так как напрямую Android не поддерживает DirectX и рассчитан на работу с OpenGL, взаимодействие РСМ и графических библиотек реализовано с помощью «костылей» и не всегда вменяемо. Тут, в первую очередь, нужно тестировать сам эмулятор.

Однако, имея некоторый опыт их использования, могу утверждать, что на OpenGL производительность почти всегда лучше.

Относительно холивара DirectX Vs OpenGL, а конкретнее, какой из инструментов победит, моё мнение следующее. Microsoft, который разрабатывает DirectX, будет позволять поддержку в играх сторонних библиотек ровно до тех пор, пока это будет выгодно и пока они не станут для него угрозой финансовых потерь.

Как только дело коснется прибыли, волшебным образом все прочие инструменты от конкурентов в среде Windows перестанут работать или будет работать неправильно. Как фактический монополист на рынке операционных систем компания может себе такое позволить.

Также советую почитать «Как решить проблему, если видеокартой не поддерживается DirectX 11 или 12». Буду признателен всем, кто расшарит этот пост в любой социальной сети. До скорой встречи!

Что лучше: DirectX или OpenGL

Ранее в интернете активно велись споры, что лучше: DirectX или OpenGL. Сейчас данная тема уже не такая актуальная, но все же нередко пользователи ей интересуются. Мы решили собрать всю достоверную информацию и опубликовать ее в виде сравнения обоих продуктов.

Сравнение

Стоит отметить, что раньше на свет появился именно OpenGL. Кроме того, он был установлен на ранних версиях Mac OS и Linux. Пресловутая Windows в то время была еще в состоянии эмбриона и ни о каком DirectX речи даже не шло.

Картинка Сравнение DirectX и OpenGL

Однако со временем компания Microsoft выпустила собственный графический API, который стал широко известен. Его популярность связана главным образом с тем, что он используется в самой популярной ОС.

А еще именно DirectX предпочитают многие разработчики игр. Справедливости ради стоит отметить, что некоторые из них добавляют в свои творения также OpenGL и даже Vulkan. Но таких игрушек катастрофически мало.

Так чем же так хорош API от Microsoft? Мы попробуем разобраться в данном вопросе. Но сначала рассмотрим ключевые особенности обоих проектов только потом вынесем вердикт по части их «крутости».

Поддержка расширений

Естественно, у DirectX такого и близко нет, так как это проприетарный продукт и изменения в него вносятся исключительно компанией Microsoft. Так что если производитель видеокарты и добавил какую-нибудь интересную опцию в драйвер, то в этом API она появится нескоро.

Картинка Что лучше - DirectX или OpenGL

А с какой периодичностью выходят обновления для Директ Икс и без того всем известно. В лучшем случае – раз в три года. Это означает, что пользователи не увидят новых фишек до тех пор, пока ребята из Microsoft не соизволят выпустить новую версию.

С OpenGL ситуация другая. Это свободный АПИ, распространяющийся под лицензией GNU/GPL и правки в него вносятся всем сообществом. В которое, кстати, входят и ключевые производители видеокарт. Корпорации AMD и NVIDIA там точно есть.

Поэтому им не нужно кого-то ждать для того, чтобы добавить поддержку нового функционала в графический API. Это значит, что ОпенГЛ может использовать новый функционал сразу после добавления его в драйверы. И это первое преимущество свободной технологии.

Кроссплатформенность

Картинка DirectX

И снова DirectX становится аутсайдером. Данный API предназначен для использования исключительно на операционных системах Windows. При этом на XP используется всего лишь версия 9.0с. А вот 10 и тем более 11 на нее нет и никогда уже не будет.

Помимо Windows данный API еще можно увидеть на игровой приставке XBOX One (и разных ее ревизий). Но эта консоль – детище компании Microsoft. Поэтому ничего удивительного здесь нет. Вы не поверите, но версий DirectX нет даже для культовой Mac OS! И о чем думает компания из Редмонда?

Картинка OpenGL

Совсем не то с 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 избыточен.

Изображение DirectX 9, 11 и OpenGL

А вот OpenGL в таких же условиях и с такой же видеокартой показал намного более скромный результат. Количество кадров в секунду едва достигло 35. Это приемлемый ФПС для неискушенного геймера, но с предыдущими цифрами его не сравнить. Аналогичная ситуация и с графическими адаптерами от Nvidia.

К сожалению, свободный API оказался совершенно не готов к такому «сражение». И с чем это связано – непонятно. Вроде бы разработчики оперативно добавляют в него новые опции. И драйвера (даже самые новые) его поддерживают.

Вердикт

Так что же все-таки лучше? Директ Х или Опен ГЛ? Все зависит от того, для чего вы будете использовать графический API. Сфера применения многое значит. Ведь в профессиональной области первый продукт значительно отстает от второго.

Картинка Компьютерные игры

Но среднестатистического пользователя всякий профессиональный софт не интересует. Ему важно, чтобы игры шли нормально. А наиболее высокую производительность в игрушках показал именно DirectX. Его и будут использовать миллионы.

В выборе API также огромную роль играет ОС. К примеру, та же Windows нормально не поддерживает OpenGL. Его использование возможно только при установке драйверов от производителя. А кому охота плясать с бубнами?

Вот и получается, что менее продвинутый DirectX является наиболее предпочитаемым API для тех, кто использует исключительно Windows и любит игры. А ведь таких пользователей большинство. Потому и популярность этого API зашкаливает.

Заключение

А теперь подведем итоги. Мы попытались беспристрастно выбрать лучший графический API из двух. По всем показателям получается, что в техническом плане лучше выглядит продукт, распространяемый под лицензией GNU/GPL.

И тем не менее, победителем вышел продукт от Microsoft. Потому, что он гораздо лучше оптимизирован для игр и самой операционной системы Windows. Даже несмотря на то, что в техническом плане он существенно уступает.

OpenGL или DirectX: что лучше, сравнительная характеристика, особенности, советы

По всей видимости, очень многие пользователи, в частности, все те, кто предпочитает использовать компьютер для установки и прохождения современных ресурсоемких игр, знают, что в настройках графики можно использовать специальные средства ускорения вывода изображения и повышения качества картинки OpenGL или DirectX. Что лучше задействовать для полного использования всех скрытых ресурсов компьютерной системы и добиться максимальной производительности? Вопрос этот является достаточно спорным, и ответить однозначно в пользу какой-то одной платформы обычно не представляется возможным, поскольку все зависит от конкретной цели, которую ставит перед собой пользователь или разработчик, а также от каждой конкретной ситуации, которая частично может быть связана с «железным» оборудованием в виде графического ускорителя, его программной поддержкой в виде драйверов и некоторыми дополнительными аспектами. Попробуем разобраться, что лучше — OpenGL или DirectX, — обратившись и к официальным источникам информации, и опираясь на мнения пользователей и разработчиков программного обеспечения, которое может требовать поддержку таких технологий.

Что такое OpenGL и DirectX?

Начнем с того, что среди рядовых пользователей бытует ошибочное мнение, что эти два описываемых компонента представляют собой графические движки. Отсюда и возникают некорректные вопросы по поводу того, какой движок лучше — OpenGL или DirectX?

Компоненты API в разработке игр

Дело в том, что к движкам этим платформы относятся лишь частично, поскольку являются исключительно программным обеспечением, которое позволяет взаимодействовать программному движку программы (игры) с установленным оборудованием (чаще всего с видео- и звуковым картами) через их драйверы, которые выполняют роль посредников. На самом же деле OpenGL и DirectX являются частью интерфейсов прикладного программирования с необходимым наборами библиотек, классов, дефиниций, структур, констант и функций, применяемых для обеспечения работы с внешними программными продуктами, устанавливаемыми в операционную систему.

Для чего используются эти технологии

Естественно, очень часто можно встретить и вопросы по поводу того, какая графика лучше — OpenGL или DirectX? Такая постановка тоже частично является некорректной, поскольку речь может идти не только о задействовании ресурсов видеокарт, но и звуковых или любых других «железных» и виртуальных устройств мультимедиа. Но чаще всего речь действительно идет именно о графических ускорителях. При этом нужно четко понимать, что выбор в пользу того или иного «моста», обеспечивающего взаимодействие видеокарты с установленной игрой или любой другой программой, где это необходимо, может зависеть и от того, насколько обязательной является такая поддержка.

Пример современной компьютерной игры

В современных играх со сложными текстурами и досконально пририсованными динамическими сценами такая поддержка крайне необходима. Но проблема в том, что далеко не все графические ускорители могут корректно использовать такую поддержку. В этом случае все зависит уже от драйверов. Будь карта какой угодно ультрамодной, но с устаревшим управляющим ПО (драйверами) она не сможет использовать все те возможности, которые изначально были заявлены производителем. Тем не менее в большинстве игр или в программах для работы с мультимедиа (например, для обработки видео) очень часто и приходится выбирать, какую именно поддержку устанавливать в настройках противопоставляя одну платформу другой (в английском варианте это обычно выглядит как «OpenGL vs DirectX»).

Основные отличия DirectX и OpenGL

Что же касается основных отличий, не вдаваясь в технические аспекты функционирования, сразу же можно отметить, что платформа DirectX, являющая эксклюзивной разработкой корпорации Microsoft, предназначена исключительно для применения в Windows-системах и частично на Xbox, а OpenGL представляет свободно распространяемую кроссплатформенную технологию, применимую в других ОС (даже в мобильных). Лицензия GNU позволяет любому желающему вносить в компоненты этого API собственные изменения и дополнения, касающиеся ее усовершенствования с целью повышения производительности тех же видеокарт, в то время как улучшений DirectX приходится ждать только по мере выхода новых версий платформы. При этом даже с самыми новыми драйверами при использовании на старых версиях моста графические ускорители не выдают заявленных производителем показателей.

Главные преимущества и недостатки

Говоря о том, что лучше — OpenGL или DirectX 11 (12), отдельно стоит отметить, что первая платформа предназначена только для графики, а вторая может использоваться вообще для всего того, что относится к мультимедиа (за графику в данном случае отвечает компонент Direct3D).

OpenGL против DirectX 11

Кроме того, многим экспертами отмечается, что в очень высокой степени выбор в пользу того или иного моста может зависеть и от типа графической карты. Но, если подходить к сравнению непредвзято, считается, что в плане охвата платформ лучше выглядит OpenGL, но DirectX выигрывает в плане того, что является готовым программным продуктом вроде класса Plug&Play. Однако не стоит забывать и том, что инструментальный набор DirectX последних версий и так доступен в OpenGL, а вот обратной поддержки нет.

OpenGL или DirectX: что лучше для игр?

Что же касается игр, и тут однозначного ответа дать нельзя. Так, например, довольно часто можно встретить комментарии по поводу того, что графические чипы линейки Radeon 9800 лучшие результаты в тестах показывают на основе DirectX, а карты GeForce серии 5XXX – при использовании OpenGL. Зато у DirectX есть еще одно неоспоримое преимущество.

Ошибка загрузки модулей OpenGL при использовании видеокарт NVIDIA

Поскольку мост OpenGL изначально создавался для других платформ, с ним в Windows возможно появление разного рода багов, а вот DirectX позволяет довольно сносно пользоваться играми даже на относительно устаревших компьютерах без всяких торможений (яркий пример тому – игра Age Of Empires).

Производительность разных платформ в сравнении

Бывает и наоборот. Так, например, некоторые пользователи отмечают, что DOOM 3 на картах серии Radeon X1XXX с использованием OpenGL просто «летает», а Half-Life 2 очень часто «тормозит». Но тут, видимо, все зависит еще и от драйверов.

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

Что лучше для BlueStacks: DirectX или OpenGL?

Достаточно часто можно встретить и вопросы по поводу использования одного из самых популярных эмуляторов Android-систем под названием BlueStacks. Какую платформу предпочесть в BlueStacks — OpenGL или DirectX? Увы, и тут однозначного ответа дать нельзя.

Настройки графики в BlueStacks

Однако негласно считается, что в случае установки через этот эмулятор именно игр, лучше задействовать OpenGL, а вот, если игра будет тормозить, тогда придется переключиться на DirectX. Но, опять же, все это касается только игровой графики. В случае с профессиональной обработкой и рендерингом видео придется достаточно серьезно экспериментировать.

Рекомендации разработчикам

Наконец, если говорить о том, что лучше — OpenGL или DirectX – для разработчика, который только начинает освоение этих технологий и делает первые шаги, большинство специалистов в этой области отмечают, что сначала лучше ознакомиться с принципами функционирования и инструментальным набором DirectX, поскольку эта платформа выглядит для новичка более простой, и для нее постоянно выпускаются неплохие комплекты SDK, предназначенные как раз для упрощения адаптации программных продуктов к «железу», а только потом переходить к изучению OpenGL.

Комплекты разработчика SDK для DirectX

Впрочем, многое может зависеть и от того, какую конечную цель вы перед собой ставите и какой именно функционал каждой платформы будет использоваться в каждом конкретном случае (только графика, только звук или какие-то объединенные решения).

Краткие выводы

Подводя итоги, как уже понятно, однозначного вывода в пользу одного или другого компонента сделать достаточно сложно. Между этими платформами идет постоянное соревнование. Иногда новая версия DirectX по своим параметрам опережает OpenGL, но по мере устаревания, а также внесения в OpenGL каких-то инноваций начинает проигрывать. В целом же при выборе следует отталкиваться исключительно от общеизвестного принципа, что истина познается в сравнении. Пробуйте и то и другое! Только после получения конкретных результатов и для каждого конкретного случая и будет ясно, к какой чаше весов склонится ваш выбор.

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

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