Графические API, такие как OpenGL и , служат связующим звеном между программным и графическим оборудованием, используемым для игр. Эти API предоставляют стандартизированные методы отображения 2D и 3D графики на экране. За последние несколько десятилетий они стали основополагающими для разработки игр.

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

DirectX против OpenGL: обзор основных характеристик

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

Они могут выполнять похожие функции, но вы заметите разницу между OpenGL и DirectX, если будете ть с ними.

DirectX vs OpenGL: область применения API

Прежде чем углубляться в эту тему, важно отметить, что, хотя они оба являются графическими API, OpenGL и DirectX имеют разные сферы применения. OpenGL — это чистый графический API, что означает, что он не имеет дела ни с чем, кроме 2D и 3D графики. DirectX, с другой стороны, представляет собой набор графических, аудио, сетевых и других аппаратных API, которые работают вместе.

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

OpenGL vs DirectX: платформы

OpenGL — это бесплатный API, управляемый некоммерческой компанией Khronos Group, в то время как DirectX производится компанией Microsoft. DirectX работает в основном на и Xbox, а другие платформы, такие как , постепенно получают поддержку, но пока что ситуация плачевна. OpenGL является кроссплатформенным, что делает его пригодным для разработки игр на различных операционных системах и игровых консолях.

Интересно:  Что такое рекуперативное торможение и как оно работает?

DirectX vs OpenGL: аппаратные ресурсы

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

DirectX vs OpenGL: документация

Доступ к подробной документации может значительно облегчить разработку игр при работе с API. DirectX и OpenGL предлагают регулярно обновляемую документацию и полезные сообщества разработчиков. Оба API ежегодно получают большое количество обновлений, чтобы обеспечить наилучшие возможности разработки.

Использование OpenGL и DirectX для разработки игр

DirectX vs OpenGL

Разработчики создали множество красивых и хорошо оптимизированных игр на современном рынке, используя как OpenGL, так и DirectX. Есть несколько моментов, которые следует учитывать при выборе API для 2D/3D графики. Некоторые разработчики просто полагаются на тот инструмент, с которым им удобнее всего работать.

OpenGL или DirectX: платформы

Мы уже коснулись платформ, но это очень важный момент для разработчиков. Если вы хотите создавать игры для , Playstation 4 или Linux, вам придется работать с OpenGL или другим API с их поддержкой. DirectX создан для Windows и Xbox и имеет ограниченную совместимость с другими системами.

OpenGL или DirectX: совместимость с движком

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

OpenGL или DirectX: простота использования

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

Интересно:  Thunderbolt против USB-C: Все, что нужно знать

Простота использования графического API уже не так важна для разработчиков игр, как раньше. С такими движками, как Unity, взаимодействующими с графическими API за кулисами, для смены используемого API достаточно одного нажатия кнопки. Если только вы не создаете игру с нуля, вряд ли вы заметите разницу в простоте использования каждого API.

OpenGL или DirectX: графические возможности

Если вы не относитесь к числу редких случаев, вряд ли вы заметите огромную разницу в доступных вам возможностях этих API. Они оба поддерживают возможности вашей графической карты, и это изменится только в том случае, если графические ы претерпят значительные изменения в будущем.

OpenGL или DirectX: производительность в играх

Игра на компьютере

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

Единственный способ выяснить, какой из этих API работает лучше, — это тестирование. Благодаря совместимости Unity с обоими API, мы можем создать проект и протестировать образец игры с обоими API, чтобы определить эталон производительности.

Эти тесты были проведены как с 2D, так и с 3D графикой, чтобы убедиться, что различия в конвейерах не являются существенным фактором. Каждый тест длится 120 секунд обычного игрового процесса, и для определения производительности измеряется количество кадров в секунду. Все тесты проводились на одном и том же компьютере.

Тест производительности 3D: Микроигра Unity Carting

Unity carting

Unity Carting Microgame — это бесплатный шаблон, который содержит все необходимое для создания простой гоночной игры. К нему прилагаются учебники, но нас больше интересует сама игра. Мы создали микроигру Carting с использованием OpenGL и DirectX, чтобы сравнить их , и результаты оказались следующими:

Интересно:  Что такое Scratch, язык программирования?
НаименьшееНаибольшееСреднее
DirectX331848365.05
OpenGL247819283.7

Тест 2D производительности: Платформер на Unity

Как и микроигра «Картинг», микроигра «Платформер Unity» бесплатна и снабжена отличными инструментами для обучения. Как и ожидалось, 2D-игра в наших тестах работает лучше, чем 3D, но вы можете оценить результаты сами.

НаименьшееНаибольшееСреднее
DirectX599850767
OpenGL302604515

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

OpenGL или DirectX 11: вывод о производительности

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

DirectX или OpenGL: что использовать для разработки игр?

Выбор правильного графического API зависит от нескольких факторов. DirectX является наиболее широко используемым графическим API. Многие разработчики игр создают свои игры для Windows и Xbox, а затем переносят их на OpenGL для других платформ. Если вы публикуете игру исключительно за пределами Windows и Xbox, возможно, вам будет выгодно использовать OpenGL с самого начала.

Производительность также является фактором, который необходимо учитывать, хотя наше тестирование показало, что она довольно незначительна при использовании таких движков, как Unity. По сути, различия между этими двумя графическими API имеют значение только для тех, кто ищет специфические нишевые возможности.