3Dゲームを作るためにDirectXやOpenGLに手をつけようと思っています。
その中で固定パイプラインとかが出てくるのですが、
これってプログラミングにおいてどんな時に必要になる知識なのか
イマイチわからないというか、読んでみても実感がわかないんですけど、
先に覚えなくてもプログラミングしていくと理解できてくるものなのでしょうか?
どなたかアドバイスお願いします。
DirectXやOpenGLに手をつけようと思っているのですが・・・
Re: DirectXやOpenGLに手をつけようと思っているのですが・・・
3Dでゲームを作るにしても、結局表示装置は2Dなわけです。
そこで、3Dの世界を2Dに変換する作業が必要なんですけど、それを「投影」とか「プロジェクション」とか言います。
3Dの世界にある各物体の位置、傾きなどとカメラの位置、方向、視野角などを組み合わせて計算して2Dに落とし込みます。
GPUはこの作業をやってくれます。
そこでは行列の掛け算を使って物体の回転とか位置決めや、2Dの世界における色表現を決める作業などを行います。
そこで出てくるのが固定パイプラインです。
3Dの世界をパイプの端に入力すると、ごにょごにょと一連の作業が行われ、パイプの他の端から出てくる、そんなイメージです。
3Dプログラミングでは、物体の位置とカメラの向きを設定すると、なんとなくそれっぽく描画されるので、取り敢えずは深い理解をしなくていいだろうと思います。
さらに、最近は固定パイプラインが廃止され、プログラマブル・シェーダに置き換わるのが世界の流れ。
これから勉強するならプログラマブル・シェーダでしょう。
そこで、3Dの世界を2Dに変換する作業が必要なんですけど、それを「投影」とか「プロジェクション」とか言います。
3Dの世界にある各物体の位置、傾きなどとカメラの位置、方向、視野角などを組み合わせて計算して2Dに落とし込みます。
GPUはこの作業をやってくれます。
そこでは行列の掛け算を使って物体の回転とか位置決めや、2Dの世界における色表現を決める作業などを行います。
そこで出てくるのが固定パイプラインです。
3Dの世界をパイプの端に入力すると、ごにょごにょと一連の作業が行われ、パイプの他の端から出てくる、そんなイメージです。
3Dプログラミングでは、物体の位置とカメラの向きを設定すると、なんとなくそれっぽく描画されるので、取り敢えずは深い理解をしなくていいだろうと思います。
さらに、最近は固定パイプラインが廃止され、プログラマブル・シェーダに置き換わるのが世界の流れ。
これから勉強するならプログラマブル・シェーダでしょう。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DirectXやOpenGLに手をつけようと思っているのですが・・・
DXライブラリが3Dに対応してますので、無理してDirectXやOpenGLに手を付ける必要は無いかと思います。
それでも難しいことがやりたい!って事ならやった方が良いでしょう。
こちらの連載コラムの最初の辺りを読んでもらえば出てきます。
「3Dグラフィックス・マニアックス | コラム | マイナビニュース」
http://news.mynavi.jp/column/graphics/index.html
【補足】
ただ、 beatleさんの言われる通りプログラマブル・シェーダが当たり前の時代になっているので、そこを押さえないとDirectXやOpenGLをやる価値がないとも言えます。
DXライブラリもシェーダには対応しています(DirectX11などの最新機能は使えないです)。
それでも難しいことがやりたい!って事ならやった方が良いでしょう。
こちらの連載コラムの最初の辺りを読んでもらえば出てきます。
「3Dグラフィックス・マニアックス | コラム | マイナビニュース」
http://news.mynavi.jp/column/graphics/index.html
【補足】
ただ、 beatleさんの言われる通りプログラマブル・シェーダが当たり前の時代になっているので、そこを押さえないとDirectXやOpenGLをやる価値がないとも言えます。
DXライブラリもシェーダには対応しています(DirectX11などの最新機能は使えないです)。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DirectXやOpenGLに手をつけようと思っているのですが・・・
パイプラインがなくなったわけではないので、固定にしてもプログラマブルにしても最初に覚えることは同じです。
パイプラインの中でステージと称される各段階でできることがシェーダプログラミングによって広がったということです。
softyaさんがリンクした連載記事では、第9回から第13回に書いてありますね。
パイプラインの中でステージと称される各段階でできることがシェーダプログラミングによって広がったということです。
softyaさんがリンクした連載記事では、第9回から第13回に書いてありますね。