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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
cloud

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

#1

投稿記事 by cloud » 10年前

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

beatle
記事: 1281
登録日時: 12年前
住所: 埼玉
連絡を取る:

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

#2

投稿記事 by beatle » 10年前

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

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

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

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

#3

投稿記事 by softya(ソフト屋) » 10年前

DXライブラリが3Dに対応してますので、無理してDirectXやOpenGLに手を付ける必要は無いかと思います。
それでも難しいことがやりたい!って事ならやった方が良いでしょう。

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

【補足】
ただ、 beatleさんの言われる通りプログラマブル・シェーダが当たり前の時代になっているので、そこを押さえないとDirectXやOpenGLをやる価値がないとも言えます。
DXライブラリもシェーダには対応しています(DirectX11などの最新機能は使えないです)。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

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

#4

投稿記事 by ISLe » 10年前

パイプラインがなくなったわけではないので、固定にしてもプログラマブルにしても最初に覚えることは同じです。
パイプラインの中でステージと称される各段階でできることがシェーダプログラミングによって広がったということです。

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

閉鎖

“C言語何でも質問掲示板” へ戻る