С точки зрения производительности и при условии наличия достойных драйверов графических процессоров, в целом нет никакой разницы.
Некоторые операции по своей природе быстрее в OpenGL, чем в DirectX9, хотя DX10 исправил это.
Но хорошоЭмпирическое правило при работе с внешним оборудованием заключается в том, что не используемый вами API определяет производительность .
При написании сетевого кода узким местом является сетевой адаптер, и он не 'Не имеет значения, написан ли ваш сокетный код в .NET, обычные сокеты Беркли в C или, возможно, используется некоторая библиотека Python.
При написании кода для использования графического процессора, графический процессор является ограничивающим фактором.Самое большое различие между DirectX и OpenGL заключается в том, что для выполнения определенных задач одному может потребоваться вызов функции или два больше, чем другому, а затрат на это практически не существует.То, что происходит на GPU, одинаково в обоих случаях, потому что это определяется вашим драйвером GPU, и потому что и OpenGL, и DirectX стараются быть максимально эффективными.
Хотя есть веские причины предпочесть любой API.
DirectX имеет гораздо лучшую поддержку инструментов.Microsoft очень хорошо справляется с этим.Отладка и оптимизация кода DirectX намного проще с помощью таких инструментов, как PIX.Кроме того, Microsoft также предоставляет вспомогательную библиотеку D3DX, которая обеспечивает эффективную реализацию многих часто используемых функций.
Преимущество OpenGL в том, что он не привязан к конкретной ОС.DirectX9 работает только на Windows.DX10 и выше работает только в Vista и выше.
OpenGL работает в любой ОС, в которой был написан драйвер OpenGL.
В Windows ситуация иногда немного неловкая.Сама Windows поставляется только с древними реализациями OpenGL.(XP с версией 1.1, я полагаю, и Vista / 7 с версией 1.5).
Таким образом, приложения OpenGL в Windows полагаются на поставщика графических процессоров, чтобы обеспечить обновленную реализацию своими драйверами.ATI и NVidia предоставляют очень хорошие реализации, так что это не такая большая проблема.Драйверы Intel OpenGL обычно отстают как по качеству, так и по поддерживаемым функциям.