› lecture › computergraphics2 › computergraphics2_7.pdf 7. 3次元形状モデル -...
TRANSCRIPT
![Page 1: › lecture › ComputerGraphics2 › ComputerGraphics2_7.pdf 7. 3次元形状モデル - info.shonan-it.ac.jp7.1 形状モデルのデータ構造 立体の表現 1. オブジェクトの各面にある4つの直線が,それぞれの四角形の面の境界であ](https://reader033.vdocument.in/reader033/viewer/2022041820/5e5d273e7c5141736e2ba451/html5/thumbnails/1.jpg)
7. 3次元形状モデル
1. 形状モデルのデータ構造
2. 多角形(ポリゴン)1. 多角形の種類
2. 多角形の法線ベクトル
3. 多角形の三角形分割
3. 多角形メッシュによる形状モデリング
1. 多角形メッシュによる物体の近似
2. 多角形メッシュのデータ構造
3. 陰面消去
4. 多角形メッシュと曲面パッチ
4. 多角形メッシュ表現の平滑化1. 多角形メッシュのシェーディング
2. グローシェーディング
3. フォンシェーディング
5. サンプルプログラム
![Page 2: › lecture › ComputerGraphics2 › ComputerGraphics2_7.pdf 7. 3次元形状モデル - info.shonan-it.ac.jp7.1 形状モデルのデータ構造 立体の表現 1. オブジェクトの各面にある4つの直線が,それぞれの四角形の面の境界であ](https://reader033.vdocument.in/reader033/viewer/2022041820/5e5d273e7c5141736e2ba451/html5/thumbnails/2.jpg)
7.1形状モデルのデータ構造
1. 形状モデル3次元物体の形状をモデル化した数学・幾何学モデル
2. 様々な形状モデル1. 多角形や多面体を基礎にした形状モデル(主流)
2. ボクセルを基礎とした形状モデル(物体の内部の表現が可)
3. ポテンシャル場の概念を基礎とした形状モデル
3. 基本的な形状要素1. ワイヤーフレームモデル
1. 形状要素: 点,線,面,立体
2. 3次元物体: 稜線
3. ワイヤーフレームモデル: 点と稜線で構成する
2. サーフェースモデル1. 3次元物体: 面
2. サーフェースモデル: 頂点,稜線,面(多角形)で構成する
3. ソリッドモデル1. 3次元物体: 多面体
2. CSG方法: 円柱や直方体などの基本形状要素を組み合わせる方法
3. 境界表現方法: 物体を構成する面や境界を,稜線や頂点で表現する方法
頂点
稜線
![Page 3: › lecture › ComputerGraphics2 › ComputerGraphics2_7.pdf 7. 3次元形状モデル - info.shonan-it.ac.jp7.1 形状モデルのデータ構造 立体の表現 1. オブジェクトの各面にある4つの直線が,それぞれの四角形の面の境界であ](https://reader033.vdocument.in/reader033/viewer/2022041820/5e5d273e7c5141736e2ba451/html5/thumbnails/3.jpg)
7.1 形状モデルのデータ構造
データ構造:座標値などの幾何情報 + 頂点,線分,多角形などの接続関係の位相情報
CSG方式:形状プリミティブを半空間Sijの集合積Sj=∩Sijで表す半空間の境界は,曲面式f(x,y,z)=0で表現する形状プリミティブSjを組み合わせて生成される物体Sは,和集合S=∪Sjで表現する
![Page 4: › lecture › ComputerGraphics2 › ComputerGraphics2_7.pdf 7. 3次元形状モデル - info.shonan-it.ac.jp7.1 形状モデルのデータ構造 立体の表現 1. オブジェクトの各面にある4つの直線が,それぞれの四角形の面の境界であ](https://reader033.vdocument.in/reader033/viewer/2022041820/5e5d273e7c5141736e2ba451/html5/thumbnails/4.jpg)
7.1 形状モデルのデータ構造
境界表現法のデータ構造
多面体を構成する局面群
曲面を構成する稜線群
稜線を構成する頂点群との間の接続関係(位相関係)
![Page 5: › lecture › ComputerGraphics2 › ComputerGraphics2_7.pdf 7. 3次元形状モデル - info.shonan-it.ac.jp7.1 形状モデルのデータ構造 立体の表現 1. オブジェクトの各面にある4つの直線が,それぞれの四角形の面の境界であ](https://reader033.vdocument.in/reader033/viewer/2022041820/5e5d273e7c5141736e2ba451/html5/thumbnails/5.jpg)
7.1 形状モデルのデータ構造
立体の表現
1. オブジェクトの各面にある4つの直線が,それぞれの四角形の面の境界であると仮定すると,この図は立方体である
2. 同じ直線の組み合わせで,部分的またはすべての面が欠けている(穴が開いた)図を書くこともできる図の右側は,全ての面と「ぶら下がる」余分な面を含んで,立体の境界でないオブジェクトになっているこの理由で,更にいくつかの束縛条件が必要
![Page 6: › lecture › ComputerGraphics2 › ComputerGraphics2_7.pdf 7. 3次元形状モデル - info.shonan-it.ac.jp7.1 形状モデルのデータ構造 立体の表現 1. オブジェクトの各面にある4つの直線が,それぞれの四角形の面の境界であ](https://reader033.vdocument.in/reader033/viewer/2022041820/5e5d273e7c5141736e2ba451/html5/thumbnails/6.jpg)
7.1 形状モデルのデータ構造
多面体とオイラーの公式:多面体は各エッジが偶数個の多角形の一部である多角形の集まりで境界されるソリッド立体である多面体にはトーラスと異なり穴が無い単純な多面体の境界表現は,次のオイラーの公式の条件を満たす
V – E + F = 2V;頂点の数, E;エッジの数, F;面の数
更にオイラーの式を一般化するV – E + F – H = 2(C – G)
G;オブジェクトを貫通する穴の数,C;オブジェクトの切り離された部品数
![Page 7: › lecture › ComputerGraphics2 › ComputerGraphics2_7.pdf 7. 3次元形状モデル - info.shonan-it.ac.jp7.1 形状モデルのデータ構造 立体の表現 1. オブジェクトの各面にある4つの直線が,それぞれの四角形の面の境界であ](https://reader033.vdocument.in/reader033/viewer/2022041820/5e5d273e7c5141736e2ba451/html5/thumbnails/7.jpg)
7.1形状モデルのデータ構造
ウィングドエッジデータ構造:単純な表現方法を用いると,例えば,1エッジが共有する2つの面をさがすには,全ての面のエッジリストを検索する必要がある,など計算コストが高くなる場合がある
ウィングドエッジ構造の各稜線は,次の要素で表現される1) エッジの2つの終点2) エッジを共有する2つの面3) エッジの端点から広がる4つの追加エッジへのポインター
各端点では,そこから広がるエッジの1つに対して,逆向きのポインターを持つ各面は,そのエッジの1つを示すポインターを持っている⇒エッジの2つの面の各頂点を時計回りに辿ると,それぞれ反対方向にエッジの端点をめぐることになる
![Page 8: › lecture › ComputerGraphics2 › ComputerGraphics2_7.pdf 7. 3次元形状モデル - info.shonan-it.ac.jp7.1 形状モデルのデータ構造 立体の表現 1. オブジェクトの各面にある4つの直線が,それぞれの四角形の面の境界であ](https://reader033.vdocument.in/reader033/viewer/2022041820/5e5d273e7c5141736e2ba451/html5/thumbnails/8.jpg)
面を基にした立体形状モデル
1. 面の幾何情報:面法線と原点からの距離
2. 面の位相情報:隣接する面の情報(面ループ/面リスト)
3. 立体形状モデルの操作
1. 稜線情報⇒稜線の名前(面名,面名)f1: f2-f6-f4-f5 の場合の稜線は (f1,f2),(f1,f6),(f1,f4),(f1,f5)
2. 頂点情報⇒頂点の名前(面名,面名,面名)f1: f2-f6-f4-f5 の場合の頂点は (f1,f2,f6),(f1,f6,f4),(f1,f4,f5),(f1,f5,f2)
3. 頂点の計算面の単位法線ベクトル面の陰関数表現この面は距離を d とすると の点を通る
面名 法線vector 距離
F1 (0,-1,0) 0
F2 (1,0,0) 1
F3 (o,1,0) 1
F4 (-1,0,0) 0
F5 (0,0,-1) 0
F6 (0,0,1) 1
面名 面ループ
F1 f2 - f6 - f4 - f5
F2 f3 - f6 – f1 - f5
F3 f4 - f6 – f2 - f5
F4 f1 - f6 – f3 - f5
F5 f1 – f4 – f3 – f2
F6 f1 – f2 – f3 – f4
zyx nnnn ,,0 rznynxn zyx
zyx dndndnP ,,
![Page 9: › lecture › ComputerGraphics2 › ComputerGraphics2_7.pdf 7. 3次元形状モデル - info.shonan-it.ac.jp7.1 形状モデルのデータ構造 立体の表現 1. オブジェクトの各面にある4つの直線が,それぞれの四角形の面の境界であ](https://reader033.vdocument.in/reader033/viewer/2022041820/5e5d273e7c5141736e2ba451/html5/thumbnails/9.jpg)
面を基にした立体形状モデル
ワイヤーフレームでの表示
a. 立体の描画面隣接情報→点情報→計算すべき点 ⇒ 点座標計算面幾何情報→面の陰関数表現
b. 点情報と点座標情報から実際の描画面ループ f1:f2-f3-f4頂点リスト (f1,f2,f3),(f1,f3,f4),(f1,f4,f2)
c. 頂点座標計算(fn,fm,fk)の座標法線ベクトル:距離:d陰関数表現:
面: 点:
f1f2f3
f4
zyx nnnn ,,
0 dznynxn zyx
000
3333
2222
1111
dzcybxadzcybxadzcybxa
yx ,1
333
222
111
,,,,,,
zyxzyxzyx
![Page 10: › lecture › ComputerGraphics2 › ComputerGraphics2_7.pdf 7. 3次元形状モデル - info.shonan-it.ac.jp7.1 形状モデルのデータ構造 立体の表現 1. オブジェクトの各面にある4つの直線が,それぞれの四角形の面の境界であ](https://reader033.vdocument.in/reader033/viewer/2022041820/5e5d273e7c5141736e2ba451/html5/thumbnails/10.jpg)
7.1 形状モデルのデータ構造
ウィングドエッジデータ構造 稜線Edgeは,頂点PVTと頂点NVTから構成される
稜線Edgeは,曲面Nfaceと曲面Pfaceの稜線
稜線NCCWと稜線PCWは,頂点PVTに接続
稜線NCWと稜線PCCWは,頂点NVTに接続
![Page 11: › lecture › ComputerGraphics2 › ComputerGraphics2_7.pdf 7. 3次元形状モデル - info.shonan-it.ac.jp7.1 形状モデルのデータ構造 立体の表現 1. オブジェクトの各面にある4つの直線が,それぞれの四角形の面の境界であ](https://reader033.vdocument.in/reader033/viewer/2022041820/5e5d273e7c5141736e2ba451/html5/thumbnails/11.jpg)
7.1形状モデルのデータ構造
![Page 12: › lecture › ComputerGraphics2 › ComputerGraphics2_7.pdf 7. 3次元形状モデル - info.shonan-it.ac.jp7.1 形状モデルのデータ構造 立体の表現 1. オブジェクトの各面にある4つの直線が,それぞれの四角形の面の境界であ](https://reader033.vdocument.in/reader033/viewer/2022041820/5e5d273e7c5141736e2ba451/html5/thumbnails/12.jpg)
7.2多角形(ポリゴン)
多角形の種類同一平面上にある点群を,互いに交差しない一連の線分で結んで,1つの領域を囲んだもの
• 頂点:多角形を構成する点
• 稜線:頂点間を結ぶ線
• 凸多角形:多角形の内部に任意の2点を与えたとき,多角形の外側に出ることなく,その2点を結ぶ線分が作れる多角形
• 凹多角形:凸多角形では,全ての隣り合う稜線のなす角が180°未満であるが,凹多角形では180°以上のものが1つ以上ある
• 穴のある多角形:多角形の内部に多角形を含むもの外側の多角形の頂点と内側の多角形の頂点を結ぶ稜線を付加して,凹多角形とみなし,三角形分割により,複数の凸多角形に分割できる
![Page 13: › lecture › ComputerGraphics2 › ComputerGraphics2_7.pdf 7. 3次元形状モデル - info.shonan-it.ac.jp7.1 形状モデルのデータ構造 立体の表現 1. オブジェクトの各面にある4つの直線が,それぞれの四角形の面の境界であ](https://reader033.vdocument.in/reader033/viewer/2022041820/5e5d273e7c5141736e2ba451/html5/thumbnails/13.jpg)
7.2多角形(ポリゴン)
多角形の法線ベクトル平面の陰関数表現式
単位法線ベクトルN
21
222
0
cbas
dczbyax
3.7
2.7
10
10
EEEEN
sc
sb
saN
![Page 14: › lecture › ComputerGraphics2 › ComputerGraphics2_7.pdf 7. 3次元形状モデル - info.shonan-it.ac.jp7.1 形状モデルのデータ構造 立体の表現 1. オブジェクトの各面にある4つの直線が,それぞれの四角形の面の境界であ](https://reader033.vdocument.in/reader033/viewer/2022041820/5e5d273e7c5141736e2ba451/html5/thumbnails/14.jpg)
7.2多角形(ポリゴン)
多角形の三角形分割多角形は,三角分割により複数の凸多面体である三角形に分割できる
穴のある多角形は,複数の凸多角形である三角形に分割できる
![Page 15: › lecture › ComputerGraphics2 › ComputerGraphics2_7.pdf 7. 3次元形状モデル - info.shonan-it.ac.jp7.1 形状モデルのデータ構造 立体の表現 1. オブジェクトの各面にある4つの直線が,それぞれの四角形の面の境界であ](https://reader033.vdocument.in/reader033/viewer/2022041820/5e5d273e7c5141736e2ba451/html5/thumbnails/15.jpg)
7.3 多角形メッシュによる形状モデリング
多角形近似による物体の近似3次元空間に定義された2次曲面や自由局面は,多角形(ポリゴン)メッシュを用いて近似して表示される
多角形メッシュの特別な場合四角形メッシュ・・・多角形メッシュでは
粗い場合三角形メッシュ・・・四角形の4頂点が
同一平面内にない場合
![Page 16: › lecture › ComputerGraphics2 › ComputerGraphics2_7.pdf 7. 3次元形状モデル - info.shonan-it.ac.jp7.1 形状モデルのデータ構造 立体の表現 1. オブジェクトの各面にある4つの直線が,それぞれの四角形の面の境界であ](https://reader033.vdocument.in/reader033/viewer/2022041820/5e5d273e7c5141736e2ba451/html5/thumbnails/16.jpg)
7.3 多角形メッシュによる形状モデリング
• 多角形メッシュの1つの頂点は,複数の多角形に重複して属するので,同じ座標値をもつ頂点ブロックが重複して存在する
• 改良
稜線ブロックを加えて,多角形リストと稜線リストを作り,同じ頂点の座標値を持つ頂点ブロックの重複を防いでいる但し,稜線ブロックは多角形リスト間で重複する
![Page 17: › lecture › ComputerGraphics2 › ComputerGraphics2_7.pdf 7. 3次元形状モデル - info.shonan-it.ac.jp7.1 形状モデルのデータ構造 立体の表現 1. オブジェクトの各面にある4つの直線が,それぞれの四角形の面の境界であ](https://reader033.vdocument.in/reader033/viewer/2022041820/5e5d273e7c5141736e2ba451/html5/thumbnails/17.jpg)
7.3 多角形メッシュによる形状モデリング
陰面消去多角形の単位法線ベクトルN多角形の1点から視線へ向かうベクトルV
内積の値が0以上の場合,多角形は表面で可視負の場合,裏面で不可視
この結果から,可視の多角形のみを表示すると,多角形で構成された凸多面体の陰面消去された表示となる
頂点の座標値によって,多角形の視点からの最大値と最小値を計算し,視点から遠い多角形から順に表示すると,深さ方向にソート(デプスソート)して表示する陰面消去ができる
10.1cosnvnv
![Page 18: › lecture › ComputerGraphics2 › ComputerGraphics2_7.pdf 7. 3次元形状モデル - info.shonan-it.ac.jp7.1 形状モデルのデータ構造 立体の表現 1. オブジェクトの各面にある4つの直線が,それぞれの四角形の面の境界であ](https://reader033.vdocument.in/reader033/viewer/2022041820/5e5d273e7c5141736e2ba451/html5/thumbnails/18.jpg)
7.4 多角形メッシュ表現の平滑化
多角形メッシュのシェーディング5章で論じたシェーディングモデルを多角形メッシュの各多角形に適応する
コンスタントシェーディング照明光は無限遠点からの平行光線で,同じ多角形ではあらゆる点で同じ単位法線ベクトルを用い,多角形上の点の光は,環境光と拡散反射光のみを考慮する従って,1つの多角形上のあらゆる点の光の強さは同じ隣接する多角形の境界部分が強調され物体がごつごつして見える
グローシェーディング多角形メッシュで表現された物体を滑らかに見せる方法多角形の各頂点での法線ベクトルは,その頂点を共有する全ての多角形の法線ベクトルの平均値が与えられる
10
6.711,0
5.714.71
fe
daf
abe
III
IIIIII
![Page 19: › lecture › ComputerGraphics2 › ComputerGraphics2_7.pdf 7. 3次元形状モデル - info.shonan-it.ac.jp7.1 形状モデルのデータ構造 立体の表現 1. オブジェクトの各面にある4つの直線が,それぞれの四角形の面の境界であ](https://reader033.vdocument.in/reader033/viewer/2022041820/5e5d273e7c5141736e2ba451/html5/thumbnails/19.jpg)
7.4 多角形メッシュ表現の平滑化
フォンシェーディングより高品質に表示する方法
多角形の各頂点での法線ベクトルを求める稜線AB上の点Eでの法線ベクトルNe稜線AD上の点Fでの法線ベクトルNf線分EF上の点での法線ベクトルN
多角形の各点での法線ベクトルによって,
各点の光の強さを計算する
隣接する多角形の法線ベクトルの平均値として計算された多角形の頂点での法線ベクトルを,多角形全体に混ぜ合わせる方法
9.71
8.717.71
fe
daf
abe
NNNNNNNNN