Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- まず、3次元の座標において、2次元と大きく異なるのは視点です
- コンピュータの2次元座標は、左上、または左下が (0 , 0) となりました
- しかし、3次元の世界では視点そのものが移動できてしまいます
- たとえ被写体が動かなくても、カメラを移動させれば移るものが変化するということです
- そのため、OpenGL の座標は柔軟であり、コマンドによって変化させることができます
- 従来の2次元座標のように座標系を設定するようなことも可能です
- この方法は、後ほど詳しく解説しましょう
- 極めて重要なことですが、OpenGL は内部で4つの座標情報から位置を割り出します
- 4つの情報とは、X 座標、Y 座標、Z 座標、そして W からなる (x, y, z, w) で構成されます
- これを 同次座標 と呼びます
- OpenGL は3次元射影による幾何学の同次座標内で動作しているのです
- 線分やポリゴンは、複数の頂点/Vertexからなり、頂点は同次座標で位置を表します
- 3次元のユークリッド空間(x, y, z)T は、同次頂点(x, y, z, 1.0)Tになり
- 2次元のユークリッド空間(x, y)T は、(x, y, 0.0 , 1.0)Tとなります
- w が 0 以外であれば、同次座標は3次元の点 (x/w, y/w, z/w)T に対応します
- 例えば、同次座標(0.5, 1, 0, 0.1)はユークリッド点(5 , 10)に対応しています
- つまり、3次元の頂点では w を 1 に、2次元では z を 0 に、w を 1 に指定します
- OpenGL では、2次元でも3次元でも、内部的にはすべての頂点が3次元であると仮定します
- OpenGL における描画は、幾何学的プリミティブの頂点郡として行われます
- プリミティブとは、点、線、ポリゴン、ビットマップ、画像のいずれかを指します
- 幾何学的プリミティブは、幾何学的オブジェクトと考えても間違いではないでしょう
- OpenGL で描画を行うには、まず、このプリミティブを定義しなければなりません
- ただし、プリミティブは頂点情報にすぎないということも意識してください
- プリミティブの定義が描画とイコールするわけではありません
- OpenGL は最終的にプリミティブを2次元の画像に変換しなければなりません
- 頂点情報は3次元ですが、コンピュータがこれを表示するデバイスは2次元だからです
- (SF のような3次元ディスプレイが存在すれば、変換作業は必要ないかもしれない)
- この、プリミティブを画像に変換する処理をレンダリングと呼んでいます
- 幾何学的プリミティブを記述するためには、何はともあれ頂点を指定しなければなりません
- 頂点データを指定するには、最初に glBegin() 関数を呼び出します
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement