Хех, вечная тема . Выскажусь и я, как пользователь обоих GAPI Начнем с точки зрения разработки\изучения GAPI начинающим разработчиком(скажем, оный не имеет большого опыта в программировании, "ООП" обзывает страшными словами, etc).
OpenGL - имеет простую процедурную архитектуру(аля просто С), DirectX в свою очередь более сложную ООП (дин. память, интерфейсы, etc). Также последний имеет некоторые специфичные вещи (Default/Managed память, Lost Device, etc) и не имеет вещей в чистом виде, упрощающих разработку и изучение(glBegin/glEnd, Matrix Stack, etc).
(Я думаю все поняли, что я имею в виду Direct3D9, ибо 11-тый сильно сложнее. Для кого слово "шейдер" вызывает тихий ужас, с 11-тым пусть лучше не связывается :). Т.к. все особенности и преимущества последнего связаны с шейдерами).
Поэтому со своей колокольни скажу, что начинающему разработчику, пришедшему в мир программирования графики и желающему освоить мощное GAPI - OpenGL mush have. Это мое имхо (так когда-то я и поступил, как результат - обладаю знаниями обоих, за очень небольшой промежуток времени).
С другой стороны, OpenGL на PC платформе находится в очень печальном положении.
Причин, можно сказать, несколько.
Во-первых, внутри драйверов он реализуется "на усмотрение" вендора, они всего лишь подгоняют все под итогую голую спецификацию. Видимо от уделения малого времени на разработку OpenGL драйвера компанией AMD(ATI), OGL ведет себя на их видеокартах очень печально, очень и очень. Для разработчиков появляются другие проблемы. Например, различность компиляторов шейдеров у каждого вендора. Поэтому любой шейдер может скомпилироваться у одного, а у другого нет. Все зависит от специфики компилятора. Ну и так далее.
Во-вторых, это система расширений OpenGL. По-началу, ее относили к его плюсам. Так как, например, если появляется какая-нибудь "фича", ее "оформляют" в виде расширения и после обновления драйвера ею уже можно воспользоваться (для справки, в DirectX для этого нужно ждать выхода новой версии последнего).
Ну, а на практике получилось вообщем-то как обычно: идея хороша, а реализация никакая. В результате появляется куча различных vendor-specific расширений, которые работают только на картах производителей :D. Это создает большую головную боль для разработчиков.
Такую же боль создает отслеживание этих самых расширений на каждой системе, ибо расширения разнятся от видеокарты к видеокарте, и если чего-либо не удается обнаружить приходиться часто в корне менять методы\логику\etc.
В общем случае - это все геморой и никому ненужные трудозатраты.
Ну, а в третьих, самая основная проблема OpenGL - это те, кто ведут его разработку последнее время: ARB (Khronos). Представляет собой большущий консорциум разных компаний, каждой из которых от OpenGL нужно что "особенное" или вообще непонятно что. Каждый приследует свои интересы и договориться они, соответственно, не могут. (хорошим примером этому следует выход OpenGL 3.0, когда обещано было столько, что на него возлагались большие надежды. Но результатом стал большущий epic fail. Многие думаю знают эту историю ).
Direct3D9, в свою очередь, тоже имел некоторую зависимость от видеокарты(Кто работал на DX, знает что такое капсы :D) , как и OpenGL со своими расширениями.
Из Direct3D11 выбросили все недостатки 9\10 (в основном 9), весь заявленный функционал стабильно работает на всех картах, поддерживающих его (нет никаких капсов), следовательно нет никакой головной боли для разработчиков.
Т.е. рынок PC платформы диктует использование именно DX (на Linux и MacOs X мало кто равняется), фактически это означает и поддержку Xbox.
PlayStation поддерживает, как уже выше писали, OpenGL да. Но он основан на стандартной спецификации и частично модифицирован компанией Sony, но в общем-то это тот же OpenGL, с тем лишь отличием, что отсутствуют всяческие проблемы с расширениями и заявленная функциональность отрабатывает на все 100%, никаких проблем.
На Mobile платформах, собственно правит OpenGL ES, некоторые проблемы с расширениями имеются, но они очень небольшого масштаба. Объясняется все обилием Mobile платформ и простой открытой спецификацией.
С точки зрения производительности, между DX и OGL можно поставить знак равно. Удобство\неудобство оных определяется лишь любителями геймдева.
Вообщем как-то так
P.S. Блин, что то слишком много букафф получилось