OpenGL vs DirectX


3Dプログラミングを始めるときに誰もが直面する問題に3DAPIの選択「OpenGLを使うのか、DirectXを使うのか」があると思います。今回は私の経験を踏まえどちらを選べば良いのかをお伝えしたいと思います。

※長々と書くので面倒な方は結論まで飛んでください

私が学生の頃はWindowsパソコン普及時代(Windows98からXPあたり)で、ゲームプログラマーを目指していた私は普段からDirectXばかり使ってプログラムを書いていました。DirectXは7,8あたりを使っていましたがフルスクリーンでバグらせるとマシンが止まったりブルースクリーンになったりとなかなかスリルがあったのを今でも良く憶えています。対してOpenGLですが大学でOpenGLの講義があり受講していましたが、特別興味を持たず課題を淡々とこなすくらいしか触れていませんでした。

社会人になりDirectXが役に立ったのはDirectX/OpenGL両方対応のツール開発やXBOXのゲームを開発したときくらいです。確かにその仕事をしている時には大学時代に学んだDirectXの知識がとても役に立ちましたが、他の仕事ではOpenGLかOpenGL系のライブラリを使うことが多かったです。スマホ(iPhone, Android)の台頭の影響も大きいと思います。次第にDirectXを使う機会が減り自ずとプライベートで使うのもOpenGLになりました。

OpenGLを推す流れになってきましたが果たしてOpenGLだけを学ぶだけで十分でしょうか?OpenGLとDirectXには右手座標系、左手座標系などの違いもあり両方やっておくと行列操作などの勉強にもなります。また、少ないとはいえDirectXの仕事もまだまだありますし、DirectX経験者は優遇されるかも知れません。DirectXの基本的な事だけでも知っておくと後々に役に立つと思います。

現在は昔みたいに家庭用ゲーム機やパソコンでガッツリゲームをする人口は減り、バリバリの3Dゲームをするのはごく一部のコアなユーザーに限られてきました。それとは逆にスマホの普及で普段ゲームをやらないようなライト層が増えソーシャルゲームのような2Dのお手軽ゲームが流行るようになりました。3Dプログラマーを長年してきた私としては今のソーシャルゲームが一般的なゲームと認識される時代に少し悲しくもあります。しかし、今後スマホの高性能化と共に3Dゲームももっと増えてくると思います。iPhoneもAndroidもOpenGLが使えるのでスマホ3Dゲームブームが到来した時にOpenGLが使いこなせると大活躍できるでしょう!

それでは、そろそろまとめたいと思います。

■結論
映像/ゲーム系の3Dプログラマーを目指している方はOpenGLに重点を置いて学び、DirectXも一通り基本的なことを抑えておけば問題ないと思います。もちろん私の持論なので万人向けではないかも知れませんが、OpenGLとDirectXどちらを使おうか迷っている方にはOpenGLをおすすめします。

■理由
・今後メインデバイスになるであろうスマホを含めOpenGLが動作するデバイスは多い
・DirectXはWindowsやXBOXなど狭い分野でしか活躍できない

いかがでしょうか?まだ迷われているようでしたら両方触ってみるのも良いと思います。この業界は○○職人や○○超人みたいな非常に技術に長けている人が好まれます。やる気のある方はOpenGL/DirectX双方を極めて3D超人になるも良いのではないでしょうか!

スポンサードリンク


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です