ジオメトリ
- このページは
- 頂点
- 頂点インデックス
- 頂点配列
- 描画プリミティブ
-
- tips
- _
- 用語
- 参考文献・参考ウェブページ
- 履歴
グラフィックス、ジオメトリについて。
グラフィックスのジオメトリ処理は頂点処理で実行される。
グラフィックスではアフィン変換を用いる際に4次元の同時座標系に展開されるが、
ジオメトリ情報としては基本的に位置情報は2次元ないし3次元が一般的。
例:xy, xyz
また基本的な頂点属性としてテクスチャ座標・法線・頂点色などを
一緒に持つことがおおい。
例:uvp, nx ny nz, rgba
グラフィックスのジオメトリ処理は頂点単位で実行されるが、
すべての頂点についてデータを持つ必要はない。
頂点を共有するジオメトリが存在するためだ。
頂点を共有するジオメトリは多い。球や6面体など、閉じたジオメトリであればほぼ点を共有している。
頂点を共有しているジオメトリのために頂点インデックス処理がある。
共有している点については別々に頂点データを持つ必要はない。頂点に対してのデータだけ持てばよい。
頂点インデックスを用いた描画手法として頂点データ群として頂点の数だけデータをもち、
それに対応した頂点へのインデックスだけ描画するポリゴンに必要なデータを持つ。
例:頂点データ xyz uvp nx ny nz rgba xyz uvp nx ny nz rgba ....
頂点インデックス:index index index index ....
頂点データ群をはじめにグラフィックス演算器に知らせ、描画キックは頂点インデックスで行う。
個々に頂点を処理するよりもデータ転送量が少なくなるため、一般的にこの方が高速になる。
頂点インデックスで記載した頂点データ群を頂点配列と呼ぶ。
大別してArray of structure 型とStructure of array 型がある。
例1:Array of structure 型
xyz xyz xyz xyz....
uvp uvp uvp uvp....
nxnynz nxnynz nxnynz....
rgba rgba rgba....
例2:Structure of array 型
xyz uvp nx ny nz rgba xyz uvp nx ny nz rgba ....
グラフィックス演算器にはこの2種のデータを教えるために
データのストライド(読み込み飛ばし)幅を規定できるようになっている。
Array of structure 型ならば、ストライド幅は0。
Structure of array 型ならば、ストライド幅は頂点あたりに持つデータサイズ。
頂点群を描画する際にどのようにポリゴンを描画するかを規定する描画プリミティブがある。
基本的には以下のようなプリミティブがある。ライブラリ・グラフィックス演算器に依存。
point:点。1点
point sprite:四角形。1点と四角形の辺のサイズを別個に指定。
line:線。2点
line strip:線。2点、その後1点ごとに線描画
triangles:三角形。3点。
triangle strip:連続三角形。3点、その後1点ごとに三角形描画。
triangle fan:扇形三角形。3点、その後1点ごとに三角形描画。
rectanble:四角形。2点。
-
-
-
-
|