3 章 3 次元形状をモデリングする
DESCRIPTION
3 章 3 次元形状をモデリングする. ここでは, 3 次元形状 ( 立体 ) をコンピュータ内に定義する手法について説明する.. 3.1 境界表現. 境界表現 (boundary representation) 頂点,稜線,面分などの幾何情報およびそれらの接続情報 幾何情報 (geometrical data) 3 次元空間内の座標値(x,y,z) 接続情報 (topological data) 面分はどの稜線で区切られているかの情報. 3.1 境界表現. - PowerPoint PPT PresentationTRANSCRIPT
3 章 3 次元形状をモデリングする
ここでは, 3 次元形状 ( 立体 ) をコンピュータ内に定義する手法について説明する.
3.1 境界表現
境界表現 (boundary representation)頂点,稜線,面分などの幾何情報およびそれらの接続情報
幾何情報 (geometrical data)3 次元空間内の座標値(x,y,z)
接続情報 (topological data)面分はどの稜線で区切られているかの情報
3.1 境界表現 多面体を構成する曲面群と,曲面を構成する稜線群と,
稜線を構成する頂点群との間の接続関係 ( 位相情報 )を表したもの.
境界表現法では多面体を構成する頂点,稜線,曲面の接続関係をウィングドエッジデータ構造を用いて表現することが多い.
ウィングドエッジデータ構造:多面体の各稜線を中心とした形状要素の接続関係を表現する位相データ構造
3.1 境界表現 1 .ポリゴン表現
多角形は基本的な形状要素
凸多角形 凹多角形 穴のある多角形
頂点稜線
穴
頂点稜線
頂点稜線
3.1 境界表現 ポリゴンの法線ベクトル
1vx
y
z
ax+by+cz=1
1/b
1/c 1/a
2v
kjv
kiv
cb
ca11
11
2
1
nkji
kji
vvabcabc
cb
ca111
/1/10
/10/121
222
21
21
cbas
s
c
s
b
s
a
kjivv
vvn
単位法線ベクトル nは 3次元 CGにおいて,陰影づけなどの処理で重要な役割を果たす.
3.1 境界表現 多角形の三角形分割
多角形
Q0
Q1
Q2 Q3
Q4
三角形
多角形
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q8Q9
Q10
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q8Q9
Q10
仮想の稜線( ブリッジ稜線 )
3.1 境界表現 多角形メッシュによる物体の近似
CG では, 3 次元空間に定義された 2 次曲面や自由曲面は,複数の小さな多角形 ( ポリゴン ) で近似して表示する.
多角形メッシュでは粗いことがある.その場合は,四角形メッシュや三角形メッシュを用いる.
四角形メッシュの頂点は同一平面内にない場合がある.
その場合,曲面の最小単位である三角形メッシュを用いて,物体を近似して表示する.
3.1 境界表現 2 .ウィングドエッジデータ構造
PVT
NVT
Edge
PCWNCCW
PCCWNCW
NfacePface
稜線 Edge :頂点 PVT と頂点NVTで構成稜線 Edge =曲面Nface と曲面 Pface の稜線稜線NCCWと稜線 PCWは頂点 PVT に接続稜線NCWと稜線 PCCWは頂点NVTに接続
多面体を構成するすべての稜線に適用し接続関係を記述
PVT
NVT
EdgePface
Nface
NCCW
NCW PCCW
PCW
オイラーの関係式V - E + F =2
頂点の数(8) 稜線の数
(12)
曲面の数(6)
3.1 境界表現 ( 例題 ) ウィングドエッジデータ構造
PVT
NVT
Nface Pface
NCCW
PCCW
PCW
NCW
EENfacePface
PVT
NVTNCW
NCCW
PCW
PCCW
①
②
③
④
⑤
⑥
⑦ ⑧
⑨Ⅰ
ⅡⅢ1
2
34
5 6
7
PVT : 2
NVT : 6
Nface :Ⅲ Pface :Ⅱ
NCCW :③
PCCW :⑥
PCW :②
NCW :⑧
⑦
3.2 CSG 表現 1 .プリミティブ
円柱や直方体などの形状プリミティブ ( 形状要素 ) を組み合わせて物体を生成する方法
f(x , y , z)=0
半空間 Sij
形状プリミティブ Sj
Sj=∩Sij
)0),,((
0),,(
1
zyxfS
zyxf
ij
n
ij
ij
3.2 CSG 表現 プリミティブ例
r
h
x
y
z
0
)0),,((
),,(
),,(
),,(
3
1
3
2
2221
zyxfS
zzyxf
hzzyxf
ryxzyxf
iicyl
3.2 CSG 表現 2 .集合演算
和( A∪B )
A B
差( A - B ) 積( A∩B )
3.2 CSG 表現 CSG のトリー構造
-
-
∪
∪
∩
3.2 CSG 表現 3 .境界評価関数
境界評価関数Bi(x,y,z) は,ある点が立体形状の内部にあるか,外部にあるか,境界 (形状の表面 )にあるか,さらに境界表面からどのくらい離れているかを評価する.
n
jji zyxfP
1
)0),,((
プリミティブ Pi
)),,((max),,(1
zyxfzyxB j
n
ji
kiki
kiki
kiki
PPzyxBzyxB
PPzyxBzyxB
PPzyxBzyxB
zyxB
:)},,(),,,(max{
:)},,(),,,(max{
:)},,(),,,(min{
),,(
3.2 CSG 表現 3 .境界評価関数 ( 例 )
x
y
0
1
-1
-1
1
1.5円 P と楕円 Q
(0,1.2) 境界評価関数の値を求めなさい .
),(
),(
),(
yxB
yxB
yxB
QP
QP
QP
境界表現、CSG表現、スイープ表現
3- 1章 3 次元形状をモデリングする
立体の表現方法 (1)
境界表現 (B-rep(Boundary
Representation))
CSG表現 (Constructive Solid Geometry
Representation)
スイープ表現 (Sweep Representation)
f1: v1, v2, v3, v4, v5, v6 S: Sweep(f1, dir: (0, 0, -1), length:
4)
立体の表現方法 (2)
境界表現(1)境界表現とは,頂点・稜線・面と,これらの相互関係を表すデータによって立体データを表現するものである.
境界表現(2)境界表現によるデータは,以下の2種類のデータにより構成される.
幾何データ:座標,方程式の係数などのような数値デ
ータトポロジーデータ
:頂点・稜線・面間の関係を表すデータ幾何データ
トポロジーデータ
ウィングドエッジデータ構造(1)境界表現の一実現例
ウィングドエッジデータとは,立体を稜線の集まりであると定義し,各稜線について,他の稜線・頂点・面との関係を保持するトポロジーデータ構造である.
各稜線につき一つのウィングドエッジデータを生成
ウィングドエッジデータ構造(2)
V1
V2E2
E3
E1
E4E
F1
F2
各稜線につき一つのウィングドエッジデータを生成
V1 V2
E1 E2
E4 E3
F1 F2
E
ウィングドエッジデータ構造(3)
V1 V2
E1 E3
E2 E4
F1 F2
E
V1 V2
E1 E3
E2 E4
F1 F2
E
V1 V2
E1 E3
E2 E4
F1 F2
E
V1 V2
E1 E3
E2 E4
F1 F2
E
V1 V2
E1 E3
E2 E4
F1 F2
E
稜線の数だけウィングドエッジデータを生成
V1 V2
E1 E2
E4 E3
F1 F2
E
内部と外部の判定点P (x0,y0,z0) が,多面体の中に存在するかを調べる.面 F1 のどちら側に点 P が存在するかを調べる.
V1
V2V3
V4E1
E2
E3
E4
E5E6
F1 F2
F3
F4
点P (x0,y0,z0)
以上のような処理を,各面について調べる.全ての面について,点 Pは各面の実体側にあると判断された場合,点 Pは立体中に存在するものとする.
CSG表現 (Constructive Solid Geometry)
CSG表現とは,立体を3次元空間における点の集合ととらえ,集合演算を基本に立体をモデル化する方法である.
+
CSG 表現の集合演算
A B
A∩B A - B
B - AA B ∪ または A + B
CSG表現の例(1)例えば,下図の立体Sは,A+B( A : 直方体 B : 円柱 ) で表される.
立体S
= +
A : 直方体 B : 円柱
CSG表現の例(2) 30,120,110),,( zyxzyx
200,3),,( 22 xzyzyx
点集合A 0:
点集合B0:
z
x
y
o 11
123
x
y
z
o3
20
CSG表現の例(3)
x
y
z
o3
20
z
x
y
o 11
123
z
x
y
o
変換行列T a
変換行列Tb
プリミティブの例
内部と外部の判定(1)例えば,点 P(x0,y0,z0) が,下図に示す立体の中に存在するかを調べる.
z
x
y
o
点 P(x0,y0,z0)
内部と外部の判定( 2 )この場合,点 P の同次座標 P'(wx0,wy0,wz0,w)を考え, P' T a
-1 が集合A 0 中に存在するか?P' T b
-1 が集合B 0 中に存在するか? を調べる.
形状SはAとBの和集合なので,上記のいずれかが満たされれば,点 P は形状S中に存在するものとする.
z
x
y
o
x
y
z
o3
20
xo
z
y
点 P(x0,y0,z0)
境界表現とCSG表現の比較境界表現の利点
形状の幾何データが数値で与えられているので,形状の表示,シミュレーションに,形状データをそのまま流用できる.面・稜線・頂点がデータとして別個に管理されているため,形状以外の情報を,面・稜線・頂点に関連付けやすい.
CSGの利点形状の定義が明確.
スイープ表現 平面図形を一定方向に移動したときの軌跡で立体を表現 局所変形との組み合わせで,様々な形状を表現可能 平行移動スイープ,回転移動スイープ