OpenGLとDirectX
最近毎日のようにOpenGLに触れるようになって色々とDirectXと比較すると違うなぁと思ったりするのでちょっと個人的な主観で色々まとめてみようと思います.
■OpenGL
歴史的背景は置いておくとして,現在のOpenGLはバージョン4.1が最新版で一時期の更新が滞り,DirectXと様々な面で差をつけられていました.その名の通りオープンな仕様で非常に幅広い処理系に対応しており,専らゲーム専門のライブラリというわけではなく,画像処理やCADなどの分野でも使用されている事が多いです.GLSLという独自のシェーディング言語を仕様化し,更にマルチな展開をみせるようになり,組込み用途向けのOpenGL ESとの連携でどんな環境にも耐えられるようになってきつつあります.
■DirectX
ご存知Microsoftが作りだしたゲーム特化のマルチメディア処理用API群です.一時期の更新の頻度はOpenGLにとても大きく差をつけるほど進化しましたが,最近は少し大人しめ.またコンソールゲーム機であるXboxにもDirectXが搭載されており,完全な互換性とまではいかなくともかなり高い互換性を持っています.OpenGLと大きく違うのはマルチメディア処理用に作られているので描画部分以外でも使用出来るのが強み.ぶっちゃけDirectXさえあればゲーム開発が出来てしまうのが大きいですが,それ故に仕様がかなり肥大化しすぎているという側面もあります.
■OpenGLのメリット
- マルチプラットフォームであらゆる分野において動作する ※完全ではない
- 非常に単純な構造になっているので習得は簡単な方
- OpenGL用に連携がしやすい外部ライブラリが沢山ある
- 初期からインストールせずに動作する環境が入っているケースが多い
- GLUTがWindowsAPIほどゴチャゴチャせずにとても扱いやすい
- PS3などのコンソールゲーム機ではOpenGLの独自拡張が使われている
■DirectXのメリット
■OpenGLのデメリット
■DirectXのデメリット
■結局どっちもどっち?
どちらも一長一短であり,メリットとデメリットもハッキリしています.一言で言うならば,「汎用性に特化しているOpenGL」と「ゲーム開発に特化しているDirectX」でしょうか.
OpenGLは最近凄い頻度で更新しているので,技術的にも十分DirectXと大差なくなってきているのでそこは心配ないかもしれません.OpenGL ESの存在も大きく,iPhoneアプリケーションなどで大活躍している現在においては十分すぎるシェアもあると言えます.またOpenGLは細かい機能を提供していないので,3Dなどの勉強にも適していると言われています.その割りには簡素で綺麗なコードも書きやすいというのも魅力のひとつ.
DirectXも最近でこそは少し大人しめの印象がありますが,今でもメジャーバージョンアップを繰り返し,どんどん新しい技術を提供しています.Windowsでゲームをする場合は相変らずDirectXという時代がまだまだ続くとは思いますので,凄いゲームを作るんだ!! という方にはやはりDirectXが向いていると思います.ドキュメントやサンプルが非常に多いというのもメリットだと思いますのでどんどん新しい事を取り込んでいきたいという人にオススメ.