3 章  3 次元形状をモデリングする

35
3章 3 章章章章章章章章章章章章 章章章章3 章章章章 ( 章) 章章章章章章章章章章章章章章章章 章章章章章章章

Upload: grant

Post on 13-Jan-2016

36 views

Category:

Documents


7 download

DESCRIPTION

3 章  3 次元形状をモデリングする. ここでは, 3 次元形状 ( 立体 ) をコンピュータ内に定義する手法について説明する.. 3.1  境界表現. 境界表現 (boundary representation) 頂点,稜線,面分などの幾何情報およびそれらの接続情報 幾何情報 (geometrical data) 3 次元空間内の座標値(x,y,z) 接続情報 (topological data) 面分はどの稜線で区切られているかの情報. 3.1  境界表現. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 3 章  3 次元形状をモデリングする

3 章 3 次元形状をモデリングする

ここでは, 3 次元形状 ( 立体 ) をコンピュータ内に定義する手法について説明する.

Page 2: 3 章  3 次元形状をモデリングする

3.1  境界表現

境界表現 (boundary representation)頂点,稜線,面分などの幾何情報およびそれらの接続情報

幾何情報 (geometrical data)3 次元空間内の座標値(x,y,z)

接続情報 (topological data)面分はどの稜線で区切られているかの情報

Page 3: 3 章  3 次元形状をモデリングする

3.1  境界表現 多面体を構成する曲面群と,曲面を構成する稜線群と,

稜線を構成する頂点群との間の接続関係 ( 位相情報 )を表したもの.

境界表現法では多面体を構成する頂点,稜線,曲面の接続関係をウィングドエッジデータ構造を用いて表現することが多い.

ウィングドエッジデータ構造:多面体の各稜線を中心とした形状要素の接続関係を表現する位相データ構造

Page 4: 3 章  3 次元形状をモデリングする

3.1  境界表現    1 .ポリゴン表現

多角形は基本的な形状要素

凸多角形 凹多角形 穴のある多角形

頂点稜線

頂点稜線

頂点稜線

Page 5: 3 章  3 次元形状をモデリングする

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において,陰影づけなどの処理で重要な役割を果たす.

Page 6: 3 章  3 次元形状をモデリングする

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

仮想の稜線( ブリッジ稜線 )

Page 7: 3 章  3 次元形状をモデリングする

3.1  境界表現   多角形メッシュによる物体の近似

CG では, 3 次元空間に定義された 2 次曲面や自由曲面は,複数の小さな多角形 ( ポリゴン ) で近似して表示する.

多角形メッシュでは粗いことがある.その場合は,四角形メッシュや三角形メッシュを用いる.

四角形メッシュの頂点は同一平面内にない場合がある.

その場合,曲面の最小単位である三角形メッシュを用いて,物体を近似して表示する.

Page 8: 3 章  3 次元形状をモデリングする

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)

Page 9: 3 章  3 次元形状をモデリングする

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 :⑧

Page 10: 3 章  3 次元形状をモデリングする

3.2   CSG 表現    1 .プリミティブ

円柱や直方体などの形状プリミティブ ( 形状要素 ) を組み合わせて物体を生成する方法

f(x , y , z)=0

半空間 Sij

形状プリミティブ Sj

Sj=∩Sij

)0),,((

0),,(

1

zyxfS

zyxf

ij

n

ij

ij

Page 11: 3 章  3 次元形状をモデリングする

3.2   CSG 表現   プリミティブ例

x

y

z

0

)0),,((

),,(

),,(

),,(

3

1

3

2

2221

zyxfS

zzyxf

hzzyxf

ryxzyxf

iicyl

Page 12: 3 章  3 次元形状をモデリングする

3.2   CSG 表現    2 .集合演算

和( A∪B )

A B

差( A - B ) 積( A∩B )

Page 13: 3 章  3 次元形状をモデリングする

3.2   CSG 表現    CSG のトリー構造

Page 14: 3 章  3 次元形状をモデリングする

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{

),,(

Page 15: 3 章  3 次元形状をモデリングする

3.2   CSG 表現    3 .境界評価関数 ( 例 )

x

y

0

1

-1

-1

1

1.5円 P と楕円 Q

(0,1.2) 境界評価関数の値を求めなさい .

),(

),(

),(

yxB

yxB

yxB

QP

QP

QP

Page 16: 3 章  3 次元形状をモデリングする
Page 17: 3 章  3 次元形状をモデリングする

境界表現、CSG表現、スイープ表現

3- 1章 3 次元形状をモデリングする

Page 18: 3 章  3 次元形状をモデリングする

立体の表現方法 (1)

境界表現 (B-rep(Boundary

Representation))

CSG表現 (Constructive Solid Geometry

Representation)

Page 19: 3 章  3 次元形状をモデリングする

スイープ表現 (Sweep Representation)

f1: v1, v2, v3, v4, v5, v6 S: Sweep(f1, dir: (0, 0, -1), length:

4)

立体の表現方法 (2)

Page 20: 3 章  3 次元形状をモデリングする

境界表現(1)境界表現とは,頂点・稜線・面と,これらの相互関係を表すデータによって立体データを表現するものである.

Page 21: 3 章  3 次元形状をモデリングする

境界表現(2)境界表現によるデータは,以下の2種類のデータにより構成される.

幾何データ:座標,方程式の係数などのような数値デ

ータトポロジーデータ

:頂点・稜線・面間の関係を表すデータ幾何データ

トポロジーデータ

Page 22: 3 章  3 次元形状をモデリングする

ウィングドエッジデータ構造(1)境界表現の一実現例

ウィングドエッジデータとは,立体を稜線の集まりであると定義し,各稜線について,他の稜線・頂点・面との関係を保持するトポロジーデータ構造である.

各稜線につき一つのウィングドエッジデータを生成

Page 23: 3 章  3 次元形状をモデリングする

ウィングドエッジデータ構造(2)

V1

V2E2

E3

E1

E4E

F1

F2

各稜線につき一つのウィングドエッジデータを生成

V1 V2

E1 E2

E4 E3

F1 F2

E

Page 24: 3 章  3 次元形状をモデリングする

ウィングドエッジデータ構造(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

Page 25: 3 章  3 次元形状をモデリングする

内部と外部の判定点P (x0,y0,z0) が,多面体の中に存在するかを調べる.面 F1 のどちら側に点 P が存在するかを調べる.

V1

V2V3

V4E1

E2

E3

E4

E5E6

F1 F2

F3

F4

点P (x0,y0,z0)

以上のような処理を,各面について調べる.全ての面について,点 Pは各面の実体側にあると判断された場合,点 Pは立体中に存在するものとする.

Page 26: 3 章  3 次元形状をモデリングする

CSG表現 (Constructive Solid Geometry)

CSG表現とは,立体を3次元空間における点の集合ととらえ,集合演算を基本に立体をモデル化する方法である.

Page 27: 3 章  3 次元形状をモデリングする

CSG 表現の集合演算

A B

A∩B A - B

B - AA B ∪ または A + B

Page 28: 3 章  3 次元形状をモデリングする

CSG表現の例(1)例えば,下図の立体Sは,A+B( A : 直方体 B : 円柱 ) で表される.

立体S

= +

A : 直方体 B : 円柱

Page 29: 3 章  3 次元形状をモデリングする

CSG表現の例(2) 30,120,110),,( zyxzyx

200,3),,( 22 xzyzyx

点集合A 0:

点集合B0:

z

x

y

o 11

123

x

y

z

o3

20

Page 30: 3 章  3 次元形状をモデリングする

CSG表現の例(3)

x

y

z

o3

20

z

x

y

o 11

123

z

x

y

o

変換行列T a

変換行列Tb

Page 31: 3 章  3 次元形状をモデリングする

プリミティブの例

Page 32: 3 章  3 次元形状をモデリングする

内部と外部の判定(1)例えば,点 P(x0,y0,z0) が,下図に示す立体の中に存在するかを調べる.

z

x

y

o

点 P(x0,y0,z0)

Page 33: 3 章  3 次元形状をモデリングする

内部と外部の判定( 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)

Page 34: 3 章  3 次元形状をモデリングする

境界表現とCSG表現の比較境界表現の利点

形状の幾何データが数値で与えられているので,形状の表示,シミュレーションに,形状データをそのまま流用できる.面・稜線・頂点がデータとして別個に管理されているため,形状以外の情報を,面・稜線・頂点に関連付けやすい.

CSGの利点形状の定義が明確.

Page 35: 3 章  3 次元形状をモデリングする

スイープ表現 平面図形を一定方向に移動したときの軌跡で立体を表現 局所変形との組み合わせで,様々な形状を表現可能 平行移動スイープ,回転移動スイープ