ページ 11

DirectXやOpenGLに手をつけようと思っているのですが・・・

Posted: 2014年2月12日(水) 21:32
by cloud
3Dゲームを作るためにDirectXやOpenGLに手をつけようと思っています。
その中で固定パイプラインとかが出てくるのですが、
これってプログラミングにおいてどんな時に必要になる知識なのか
イマイチわからないというか、読んでみても実感がわかないんですけど、
先に覚えなくてもプログラミングしていくと理解できてくるものなのでしょうか?
どなたかアドバイスお願いします。

Re: DirectXやOpenGLに手をつけようと思っているのですが・・・

Posted: 2014年2月12日(水) 21:44
by beatle
3Dでゲームを作るにしても、結局表示装置は2Dなわけです。
そこで、3Dの世界を2Dに変換する作業が必要なんですけど、それを「投影」とか「プロジェクション」とか言います。
3Dの世界にある各物体の位置、傾きなどとカメラの位置、方向、視野角などを組み合わせて計算して2Dに落とし込みます。
GPUはこの作業をやってくれます。

そこでは行列の掛け算を使って物体の回転とか位置決めや、2Dの世界における色表現を決める作業などを行います。
そこで出てくるのが固定パイプラインです。
3Dの世界をパイプの端に入力すると、ごにょごにょと一連の作業が行われ、パイプの他の端から出てくる、そんなイメージです。

3Dプログラミングでは、物体の位置とカメラの向きを設定すると、なんとなくそれっぽく描画されるので、取り敢えずは深い理解をしなくていいだろうと思います。
さらに、最近は固定パイプラインが廃止され、プログラマブル・シェーダに置き換わるのが世界の流れ。
これから勉強するならプログラマブル・シェーダでしょう。

Re: DirectXやOpenGLに手をつけようと思っているのですが・・・

Posted: 2014年2月12日(水) 22:20
by softya(ソフト屋)
DXライブラリが3Dに対応してますので、無理してDirectXやOpenGLに手を付ける必要は無いかと思います。
それでも難しいことがやりたい!って事ならやった方が良いでしょう。

こちらの連載コラムの最初の辺りを読んでもらえば出てきます。
「3Dグラフィックス・マニアックス | コラム | マイナビニュース」
http://news.mynavi.jp/column/graphics/index.html

【補足】
ただ、 beatleさんの言われる通りプログラマブル・シェーダが当たり前の時代になっているので、そこを押さえないとDirectXやOpenGLをやる価値がないとも言えます。
DXライブラリもシェーダには対応しています(DirectX11などの最新機能は使えないです)。

Re: DirectXやOpenGLに手をつけようと思っているのですが・・・

Posted: 2014年2月13日(木) 17:54
by ISLe
パイプラインがなくなったわけではないので、固定にしてもプログラマブルにしても最初に覚えることは同じです。
パイプラインの中でステージと称される各段階でできることがシェーダプログラミングによって広がったということです。

softyaさんがリンクした連載記事では、第9回から第13回に書いてありますね。