mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf...
TRANSCRIPT
![Page 1: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/1.jpg)
CG基礎 3次元立体のモデリング
![Page 2: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/2.jpg)
3DCG表示
対象物を計算機内で表現する 形の定義 表面の材質 光源
モデリング レンダリング
対象物をディスプレイに表示する 投影(座標変換) 照光(反射・屈折の計算)
今回のテーマ
![Page 3: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/3.jpg)
3
モデリング
モデリングとは? 画面表示したい物体の形,位置,大きさなどをコンピュータ内部のデータとして表現すること
出来上がったデータ → モデル
目的に応じた適切なモデリングのために・・・ 多面体の表現方法 曲線,曲面の表現法 自然物,複雑な形状のモデリング方法
![Page 4: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/4.jpg)
4
様々な形状モデリングの例
![Page 5: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/5.jpg)
5
形状モデル(点群モデル)
頂点座標だけを記録する データ表現が単純 立体を表現できない
3次元形状測定器で得られる point cloud, 点群 後の処理が必要
複数データの位置合わせ 面の生成
![Page 6: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/6.jpg)
6
形状モデル(ワイヤーフレームモデル)
頂点座標,稜線だけを記録する データ表現が単純 計算が容易
計算機の性能が低かった時代によく使われた
欠点 裏側も見えてしまう(複雑な形を把握しにくい)
形が一意に定まらない場合がある
![Page 7: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/7.jpg)
![Page 8: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/8.jpg)
8
ワイヤーフレームモデルのデータ構造
頂点リストと稜線リスト
![Page 9: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/9.jpg)
9
形状モデル(サーフェスモデル)
ワイヤーフレーム+面情報
![Page 10: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/10.jpg)
10
サーフェスモデルのデータ構造
![Page 11: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/11.jpg)
11
形状モデル(ソリッドモデル)
サーフェスモデル+物体の内外を区別する情報
![Page 12: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/12.jpg)
12
形状の表現法の進化
![Page 13: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/13.jpg)
13
ソリッドモデルの形状表現
建築物や乗り物 → 人工的な物体 比較的、単純な形状の組み合わせ 主に人工物を設計するCADの分野で使用されている表現 境界表現 CSG表現 スイープ表現 局所変形
![Page 14: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/14.jpg)
境界表現
頂点座標と稜線・面の接続関係で立体を表現
![Page 15: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/15.jpg)
15
CSG表現
立体をプリミティブ(基本立体)と,その組み合わせ表現
基本立体の種類,大きさ,位置情報,結合状態をツリー構造であらわす
基本立体: 立方体,円柱,多角柱,錐体,球
集合演算: 和集合,積集合,差集合,補集合
![Page 16: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/16.jpg)
16
CSG表現 の例
![Page 17: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/17.jpg)
CSGの例
![Page 18: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/18.jpg)
スイープ表現
平面図形を一定方向に移動したときの軌跡で立体を表現 局所変形との組み合わせで,様々な形状を表現可能 平行移動スイープ,回転移動スイープ
![Page 19: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/19.jpg)
19
他の表現方法
ボリューム表現 八分木表現 フラクタル図形 メタボール パーティクル
![Page 20: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/20.jpg)
ボリューム表現
立体を3次元の格子状の小
立方体(ボクセル)の集合で表す
長所 データ構造が単純,集合演算が容易
人工的な物体より,自然界の不規則な形状表現に適する
短所 データ量が膨大,操作に手間がかかる
![Page 21: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/21.jpg)
21
ボリュームレンダリング
![Page 22: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/22.jpg)
22
ボリュームレンダリング
![Page 23: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/23.jpg)
23
八分木表現
ボクセルを階層的に,木構造で生成 物体が存在するボクセルのみ細かく分割 空間量(メモリ)も少なくて済み,高速
3次元画像の八分木表現
![Page 24: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/24.jpg)
フラクタル図形 全体形状がその形状の各部分にも現れるような形状. 自己相似形状, 再帰構造
例)コッホ曲線,ジュリア集合,マンデブロ集合など
![Page 25: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/25.jpg)
中点変位法 中点に起伏量Zを加える操作を繰り返す 起伏量Zは,正規分布に従う乱数によって決定
Xm=(X1+X2)/2 、Ym=(Y1+Y2)/2 XX = Xm + Z、YY = Ym + Z
![Page 26: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/26.jpg)
26
中点変位法による画像生成
![Page 27: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/27.jpg)
27
メタボール 立体を球の集まりで表現 距離とともに減衰する影響力(関数)を定義し, その重ね合わせ
で形状を表現
![Page 28: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/28.jpg)
28
![Page 29: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/29.jpg)
パーティクル 形状が不定で,明確な表面が存在しない物体
樹木,炎,滝,雲 などの自然物
一定の規則に従って生成した多数の粒子で表現 粒子(パーティクル)の生成,移動,消滅,衝突 の物理的規則が必要
パーティクルで表現した 炎と煙
![Page 30: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/30.jpg)
オイラー・ポアンカレの公式
オイラー・ポアンカレの公式とは ソリッドモデルに不変な構成要素の関係式 v - e + f - h = 2 (m - g) 頂点数 - 稜線数 + 面数 - 面内ループ数 = 2 (物体数 - 貫通穴数)
どちらでも成り立つか?
![Page 31: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/31.jpg)
オイラー操作
ソリッドモデルに対する形状操作 面や頂点、稜線を増やす操作
次のような性質がある 操作後もオイラー・ポアンカレの公式を常に満たす オイラー操作の組み合わせで任意のソリッドモデルを作成できる (ソリッドモデル = オイラー操作の組み合わせ) オペレータ例
MVFB: Make Vertex, Face, and Body MVE: Make Vertex and Edge MEF: Make Edge and Face MVL: Make Vertex and Loop
![Page 32: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/32.jpg)
三角形メッシュ表現
三角形の集合で形を表現する 自然物など数式で表現しにくい形状を扱いやすい データ構造がシンプルである 面の細かさで精度を調整できる(データ量と精度のトレードオフ)
![Page 33: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/33.jpg)
三角形メッシュ表現の問題点
いかに効率よく面の数を少なく抑えるか ゲーム機などのハードウェアの制限
携帯電話、PDAなど: 数十~数百 最近のゲーム機: 数千~数万 SF映画: 数十万~数百万 最先端の研究: 数億
いかに効率よく形を制御するか 頂点を1つずつ移動させるのは大変
いかに精度良く曲面を表現するか 製品設計への応用
![Page 34: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/34.jpg)
四角形ではなく三角形を使用する理由
四角形だと平面でない場合が許容される 形状に曖昧さがでる
三角形や四角形、五角形が混在すると処理が煩雑 すべて同じ形の面で表現したい場合
すべて四角形や五角形に置き換えるのは難しい 三角形に置き換えるのは容易(単なる分割)
四角形で表現する利点もある パラメトリック曲面で表現しやすい 面の数を減らせる=データ量を削減できる
OR
![Page 35: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/35.jpg)
課題の内容
OBJ形式で立体の形を記述してみる 記述した形が意図したものになっているか確認する
v 0.000000 0.000000 100.000000 v 0.000000 50.000000 0.000000 v 29.389263 40.450850 0.000000 v 47.552826 15.450850 0.000000 v 47.552826 -15.450850 0.000000 v 29.389263 -40.450850 0.000000 v 0.000000 -50.000000 0.000000 v -29.389263 -40.450850 0.000000 v -47.552826 -15.450850 0.000000 v -47.552826 15.450850 0.000000 v -29.389263 40.450850 0.000000 f 1 2 3 f 1 3 4 f 1 4 5 f 1 5 6 f 1 6 7 f 1 7 8 f 1 8 9 f 1 9 10 f 1 10 11 f 1 11 2 f 2 4 3 f 2 5 4 f 2 6 5 f 2 7 6 f 2 8 7 f 2 9 8 f 2 10 9 f 2 11 10 f 2 12 11
![Page 36: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/36.jpg)
OBJ形式とは
Wavefront社の策定したフォーマット 数あるフォーマットの1つに過ぎない。これ以外にも様々なフォーマッ
トがある。一長一短。
キーワード「v」の後に頂点の座標を記す キーワード「f」の後に面を構成する頂点番号を記す 1行1エントリ
![Page 37: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/37.jpg)
例
V1 (0, 0, 1)
V2 (2, 0, -1)
V3 (0, 2, 0)
V4 (-1, 0, 0)
v 0 0 1 v 2 0 -1 v 0 2 0 v -1 0 0 f 3 1 2 f 3 4 1 f 3 2 4 f 1 4 2
![Page 38: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/38.jpg)
座標系と面の向き
![Page 39: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/39.jpg)
課題の注意点
OBJViewはJavaアプレット まずはOBJファイルを手で入力して作成。実験してみる。 OBJファイルをプログラムで生成してみる。 様々な形にチャレンジしてみる。
![Page 40: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/40.jpg)
先輩たちの作例(1/2)
![Page 41: mitani.cs.tsukuba.ac.jp › lecture › old2012 › cg_media › 07_material.pdf 3次元立体のモデリング - Jun MITANIボリューム表現. . 立体を3次元の格子状の小](https://reader033.vdocumento.com/reader033/viewer/2022041820/5e5d273e7c5141736e2ba44f/html5/thumbnails/41.jpg)