DirectX против OpenGL
Алексей Малашин
Xakep Железо, номер #006, стр. 006-068-6
То есть, хотя поддержка на уровне железа и реализована по-разному (различается как реализация базовых функций, так и фирменные технологии, направленные на улучшение качества графики), выявить лучший механизм сложно, поскольку новые функции OpenGL доступны лишь через extensions, тогда как у DirectX приходится ждать новой версии библиотеки.
Программная поддержка
OpenGL. Поскольку эта библиотека разрабатывалась группой компаний, она является мультиплатформенной и поддерживается большим количеством языков программирования (включая Java, Perl, Python), операционных систем (Windows, Macintosh, *nix). Причем любой производитель видеоадаптеров может купить лицензию и выпустить свою версию OpenGL не только для компьютера, но и для других устройств (существуют реализации под игровые консоли, КПК и даже телефоны). Причем ARB рассматривает большинство расширений, созданных производителями железа, и всегда есть вероятность их включения в спецификацию следующей версии библиотеки.
DirecX. Это детище одной лишь Microsoft, и соответственно официальная поддержка только операционных систем семейства Windows и платформы XBox. И исходя из такой монопольности, развитием и внедрением новых функций занимается только эта корпорация.
Точка зрения программиста
Если посмотреть на программную реализацию обоих библиотек, то можно сделать единственный вывод: программировать приложения с использованием OpenGL гораздо легче, чем писать их под DirectX (для примера: чтобы нарисовать обыкновенный треугольник на экране с использованием DirectX нужно написать почти в 5 раз больше текста, чем с использованием OpenGL). Правда, разработчики D3D постоянно пытаются облегчить работу программистов, объединяя наиболее часто используемые вызовы и операции в Common Files.
Выводы
Итак, обе библиотеки облегчают работу конечного программиста и обеспечивают интерфейс программы с конкретным железом. Они не совместимы между собой и имеют свои фирменные особенности, поэтому производителям приходится реализовывать в своих ядрах базовые функции обоих API, причем учитывать дополнительные функции новых версий и расширений.
Окончательно можно сделать следующий вывод: обе библиотеки достаточно мощные и производительные, но их преимущества проявляются в разных областях. DirectX оптимально подходит для создания игр и других графических приложений под операционной системой Windows (что чаще всего и происходит), OpenGL же лучше всего проявляет себя на мощных рабочих станциях и там, где требуется совместимость приложений с различными платформами (как программная, так и аппаратная). Хотя и в сфере игр эта библиотека так же достаточно востребована (Doom III, Unreal Tournament 2004).