computer graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元cg computer graphics...

32
1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension CG Version 1.1 2006.03.31 2. 2次元CG 2. 3次元コンピュータグラフィックス 2.1 3次元座標系 2.2 座標変換(幾何変換) 2.3 座標変換の基礎知識 2.4 座標変換(Viewing2.5 3Dクリッピング

Upload: others

Post on 01-Aug-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

1

2. 2次元CG

Computer Graphics

Numazu College of TechnologyDept. of Computer & Control

Production System Lab.

2. 3-Dimension CG

Version 1.1 2006.03.31

2. 2次元CG

2. 3次元コンピュータグラフィックス

2.1 3次元座標系

2.2 座標変換(幾何変換)

2.3 座標変換の基礎知識

2.4 座標変換(Viewing)

2.5 3Dクリッピング

Page 2: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

2

3. 3次元CG

2.1 3次元座標系

右手座標系 左手座標系

数学の世界CGの世界

(XY:スクリーン、Z:奥行き)

X XY

YZ

Z

違いはZ軸の方向が逆

3. 3次元CG

2.2 座標変換(幾何変換)

平行移動

回転(X軸)

拡大・縮小

x’y’z’1

1000

0100

0010

txtytz1

xyz1

=

x’y’z’1

sx000

0sy00

00sz0

0001

xyz1

=

x’y’z’1

1000

0cosαsinα

0

0-sinαcosα

0

0001

xyz1

=

Page 3: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

3

3. 3次元CG

平行移動(幾何変換:図)

移動前 移動後移動量tx,ty,tz

X XY Y

Z Z

x x

x1 y1

z1

y y

z z

P(x,y,z) P(x,y,z)P1(x1,y1,z1)

tx ty

tz

3. 3次元CG

平行移動(幾何変換:変換式)

x’y’z’1

1000

0100

0010

txtytz1

xyz1

=

x’ = x + txy’ = y + tyz’ = z + tz

= Tt(tx,ty,tz)xyz1

Page 4: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

4

3. 3次元CG

拡大・縮小(幾何変換:図)

変換前 変換後拡大・縮小率sx,sy,sz

X XYY

Z Z

x xsx*x

sy*y

sz*z

y y

zz

P1(x,y,z)

P2(x,y,z)

P1(x,y,z)

原点中心

3. 3次元CG

拡大・縮小(幾何変換:変換式)

x’y’z’1

sx000

0sy00

00sz0

0001

xyz1

=

原点中心の回転

= Ts(sx,sy,sz) xyz1

Page 5: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

5

3. 3次元CG

回転(幾何変換:回転軸)

軸中心の回転移動

回転の方向は、軸先端からみて左回り

X軸中心 YZ平面内Y軸中心 ZX平面内Z軸中心 XY平面内

X Y

Z

xy

z

3. 3次元CG

回転(幾何変換:X軸回り)

X軸回りの回転

x’y’z’1

1000

0cosαsinα

0

0-sinαcosα

0

0001

xyz1

=

= Tr(α) xyz1

回転の方向は、軸先端からみて左回り

X Y

Z

x y

z

αP(x,y,z)

Pr(xr,yr,zr)

Page 6: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

6

3. 3次元CG

回転(幾何変換:Y軸回り)

Y軸回りの回転

x’y’z’1

cosβ0

-sinβ0

sinβ0

cosβ0

0100

0001

xyz1

=

= Tr(β) xyz1

回転の方向は、軸先端からみて左回り

X Y

Z

x

y

z

βP(x,y,z)

Pr(xr,yr,zr)

3. 3次元CG

回転(幾何変換:Z軸回り)

Z軸回りの回転x’y’z’1

0010

cosγsinγ

00

-sinγcosγ

00

0001

xyz1

=

= Tr(γ) xyz1

回転の方向は、軸先端からみて左回り

X Y

Z

xy

P(x,y,z)

Pr(xr,yr,zr)

Page 7: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

7

3. 3次元CG

合成変換

・2次元と同様に同次座標系を用いる・これらの変換はアフィン変換である・直線は直線に、直線上の点の比も維持される

・2次元と同様に一連の変換は、変換行列で表すことができる

・変換の例

任意点(x0,y0,z0)を中心とする拡大(幾何変換)X’=Tt(x0,y0,z0) Ts(sx,sy,sz) Tt(-x0,-y0,-z0)X

任意点(x0,y0,z0)を通り、x軸に平行な直線を中心とした回転(幾何変換)

X’=Tt(x0,y0,z0) Tr(α) Tt(-x0,-y0,-z0)X

3. 3次元CG

任意直線まわりの回転

1点(x0,y0,z0)を通り、単位ベクトルが(l,m,n)の直線回りにθ回転させる変換

T=Tt(x0,y0,z0)・Trx(-α)・Try(-β)・Trz(θ)・Try(β)・Trx(α)・Tt(-x0,-y0,-z0)

22cos

nmn+

=α22 nm

msin+

22cos nm +=β l−=βcos

ここで

Page 8: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

8

3. 3次元CG

2.3座標変換の基礎知識

2.3.1 モデル座標とワールド座標

2.3.2 ワールド座標とビュー座標

2.3.3 ビュー座標とスクリーン座標

2.3.4 投影法

3. 3次元CG

2.3.1 モデル座標とワールド座標

X Y

Z

X

X

X

Y

Y

Y

Z Z

Z

Cone Cube

CylinderSphere

各プリミティブ毎に定めた座標

モデル座標(オブジェクト座標)

Page 9: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

9

3. 3次元CG

モデル座標とワールド座標

実際に表示を行う3次元空間

ワールド座標

World Coordinate

Object Coordinate 1

Object Coordinate 2

Object Coordinate 3

X2

Y2

Z2

X3

X1

Y3

Y1

Z3

Z1

Xw Yw

Zw

3. 3次元CG

2.3.2 ワールド座標とビュー座標

ワールド座標(右手座標系) ビュー座標(左手座標系)[カメラ座標ともいう]

Page 10: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

10

3. 3次元CG

ワールド座標とビュー座標

ワールド座標(右手座標系) ビュー座標(左手座標系)[カメラ座標ともいう]

3. 3次元CG

2.3.3 ビュー座標とスクリーン座標

Xv

Xs

Ys

Yv

Zv

ScreenScreen

視点

ビュー座標(左手座標系) スクリーン座標(2次元)

Page 11: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

11

3. 3次元CG

2.3.4 投影法

並行投影(正射影) 透視投影

機械設計製図用(長さが正確)

遠近感がありデザイン用(長さが正確ではない)視点

Screen Screen

3. 3次元CG

投影法の比較

並行投影(正射影)

透視投影

camera

Page 12: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

12

3. 3次元CG

2.4 座標変換

2.4.1 モデリング変換

2.4.2 視野変換

2.4.3 投影変換

2.4.4 Viewing

3. 3次元CG

座標変換(Viewing)

モデリング座標系からワールド座標系へ

ワールド座標系から視点(View)座標系へ

視点(View)座標系からスクリーン座標へ

描画までの座標変換(Viewing)の手順

モデリング変換

視野変換(視界変換、ビューイング変換)

空間と形状の定義

投影変換(射影変換)

視点、目標点、スクリーンサイズ

(スクリーン座標からディスプレイ座標へ)

Page 13: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

13

3. 3次元CG

モデリング変換

X1

Y1

Z1

Xw Yw

Zw

(Cx,Cy,Cz)

α

β

γ

H:高さRx,Ry:半径

World Coordinate

Model Coordinate

モデル座標

ワールド座標

3. 3次元CG

視野変換、投影変換

ワールド座標

ビュー座標

スクリーン座標

視野変換 投影変換

座標の読替 座標の移動

Xw

Xv

Zv

Yv

Yw

Zw

World Coordination

View Coordination

視軸

目標点

視点

ViewPoint

TargetPoint

Screen

P0wP0s

P2w

P2s

P1w

P1s

Page 14: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

14

3. 3次元CG

2.4.1 モデリング変換

X1

Y1

Z1

Xw Yw

Zw

(Cx,Cy,Cz)

α

β

γ

H:高さRx,Ry:半径

World Coordinate

Model Coordinate

各軸回りの回転角:α,β,γモデル座標原点の位置:Cx,Cy,Cz

3. 3次元CG

モデリング変換(変換パラメータ)

Pw(Pxw,Pyw,Pzw)

Xm

Ym

Zm

Xw XmYw

Ym

Zw Zm

Cm

α

β

γ

World Coordinate

Model Coordinate

Model Coordinate

Pm(Pw)

Pm

Pm(Pxm,Pym,pzm)

Page 15: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

15

3. 3次元CG

モデリング変換(2次元でのイメージ)

配置後は見る座標系の原点が異なる

3. 3次元CG

モデリング変換(平行移動)

Xm

Xm

Ym

Ym

Zm

Zm

Xw Yw

Zw

Cm

モデル座標原点をワールド座標の原点にあわせる

x1y1z11

1000

0100

0010

-Cx-Cy-Cz1

PxmPymPzm1

=

X1=Tt Pm

Page 16: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

16

3. 3次元CG

モデリング変換(Y軸回りの回転)

x2y2z21

cosβ0

sinβ0

0100

-sinβ0

cosβ0

0001

x1y1z11

=

Ym軸をβ回転させZm軸をZwYm平面にあわせる

X2=T(β) X1β

Xm

Xm

YmYm

Zm

Zm

XwYw

Zw

3. 3次元CG

モデリング変換(X軸回りの回転)

x3y3z31

0 cosα-sinα

0

1000

0sinαcosα

0

0001

x2y2z21

=

Xm軸をα回転させZm軸をZw軸にあわせる

X3=T(α) X2

α

XmXm

Ym

Ym

Zm

Zm

XwYw

Zw Xm,YmはXwYw平面内に移動する

Page 17: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

17

3. 3次元CG

モデリング変換(Z軸回りの回転)

γ

Xm

Xm

Ym

Ym

Zm

Zm

XwYw

Zw

PxwPywPzw1

cosγsinγ

00

0010

-sinγcosγ

00

0001

x3y3z31

=

Zm軸をγ回転させモデリング座標をワールド座標にあわせる

Pw=T(γ) X3

3. 3次元CG

モデリング変換(変換式)

Xm

Ym

Zm

Xw Yw

Zw

Cm

α

β

γ

World Coordinate

Model Coordinate

Pm(Pw)

Pw(Pxw,Pyw,Pzw)

Pm(Pxm,Pym,pzm)X1=Tt PmX2=T(β) X1X3=T(α) X2Pw=T(γ) X3

Pw=T(γ) T(α)T(β) Tt Pm=Tmw Pm

Pm= Tt-1 T(β) -1 T(α) -1 T(γ) -1 Pw=Tmw -1 Pw

Page 18: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

18

3. 3次元CG

2.4.2 視野変換

視点:V(Vx,Vy,Vz)w 目標点:T(Tx,Ty,Tz)wスクリーンサイズ:SX,SY 画面の傾き:γ 画角:φ

Xw

Xv

Zv

Yv

Yw

Zw

World Coordination

View Coordination

視軸

目標点

視点

ViewPoint

TargetPoint

Screen

P0wP0s

P2w

P2s

P1w

P1sφ

3. 3次元CG

視野変換と投影変換概要(2次元イメージ)

視野変換World View

投影変換View Screen画角:φ

Page 19: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

19

3. 3次元CG

視野変換(World to View)

ワールド座標の値をビュー座標で読む

Xw

Xv

Zv

Yv

Yw

Zw

World Coordination

View Coordination

視軸

目標点

視点

ViewPoint(Vx,Vy,Vz)w

TargetPoint(Tx,Ty,Tz)w

Pw(Pxw,Pyw,Pzw)Pv(Pxv,Pyv,Pzv)

γ

3. 3次元CG

視野変換(平行移動)

Xw

XvXv

Xv

ZvZv

Zv

YvYv

YvYv

Yw

Zw

World Coordination

視点x1y1z11

1000

0100

0010

-Vx-Vy-Vz1

PxwPywPzw1

=

X1=Tt Pw

視点の原点をワールド座標原点に移動する

Page 20: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

20

3. 3次元CG

視野変換(Y軸回りの回転)

x2y2z21

cosα0

-sinα0

0100

sinα0

cosα0

0001

x1y1z11

=

X2=T(α) X1

Yw軸回りの角度αの回転により、Zv軸をYwZw平面に重ねる

Xw

Xw

XvXv

Zv

YvYv

Yw

Zw

Zw

α

3. 3次元CG

Y軸まわりの回転角

22 )()(cos

TzVzTxVxTzVz

−+−

−=α

22 )()()(sinTzVzTxVx

TxVx−+−

−−=α

ここで、αはYwの先端から原点方向を見た場合の右回りを正とする

Tv=VxかつTz=Vxの場合(真上から物体を見る)は分母がZEROとなり計算不能となるこの場合cosα=1 sinα=0

とする。

Page 21: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

21

3. 3次元CG

視野変換(X軸回りの回転)

Xw軸回りの角度βの回転により、-Zv軸をZw軸に合わせる

x3y3z31

0 cosβsinβ

0

1000

0-sinβcosβ

0

0001

x2y2z21

=

X3=T(β) X2

Xw

XvXv

Zv

Yv

Yw

Yw

Zw

Zw

β

3. 3次元CG

X軸まわりの回転角

222

22

)()()(

)()(cos

TzVzTyVyTxVx

TzVzTxVx

−+−+−

−+−=β

222 )()()(sin

TzVzTyVyTxVxTyVy

−+−+−

−=β

ここで、βはXwの先端から原点方向を見た場合の右回りを正とする

Tv=VxかつTy=VyかつTz=Vzの場合(視点と目標点が同じ)は分母がZEROとなり計算不能となるこの場合、目標点を視軸上に移動させる

Page 22: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

22

3. 3次元CG

視野変換(Z軸回りの回転)

x4y4z41

cosγSinγ

00

0010

-sinγcosγ

00

0001

x3y3z31

=

Zw軸回りの角度γの回転により、Xv軸をXw軸に合わせる

X4=T(γ) X3

Xw

Xw XvXv

Zv

YvYw

Yw

Zw

γ

3. 3次元CG

視野変換(Z軸の反転)

1000

00-10

0100

0001

x4y4z41

=

Pv=T(-z) X4

右手座標から左手座標に変換する

PxvPyvPzv1

Xw XvXv

Zv

YvYw

Zw Z

w

Page 23: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

23

3. 3次元CG

視野変換(World to View:変換式)

Pv(Pxv,Pyv,Pzv)

Pw(Pxw,Pyw,pzw)

X1=Tt PwX2=T(β) X1X3=T(α) X2

Pv=T(-z) X4

Pv=T(-z)T(γ) T(α)T(β) Tt Pw=Twv PwPw= Tt-1 T(β) -1 T(α) -1 T(γ) -1 T(-z)-1 Pw=Twv -1 Pv

Xw

Xv

Zv

Yv

Yw

Zw

World Coordination

View Coordination

視軸

目標点

視点

ViewPoint(Vx,Vy,Vz)w

TargetPoint(Tx,Ty,Tz)w

Pw(Pxw,Pyw,Pzw)Pv(Pxv,Pyv,Pzv)

γ

X4=T(γ) X2

3. 3次元CG

視野変換(参考)

ワールド座標とビュー座標が同じ右手座標系ならT(-z)は不要である

Pw= Tt(z)-1 T(β) -1 T(α) -1 T(γ) -1 T(-z)-1 Pw=Twv -1 Pv

視野変換は、座標を読み替えるだけであり、点は移動しない

World to View

Pv=T(-z)T(γ) T(α)T(β) Tt(z) Pw=Twv Pw

View to World

Page 24: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

24

3. 3次元CG

2.4.3 投影変換

Xw

Xv

Zv

Yv

Yw

Zw

World Coordination

View Coordination

視軸

目標点

視点

ViewPoint(Vx,Vy,Vz)w

TargetPoint(Tx,Ty,Tz)w

Screen(SX,SY)

P0w

P0v

P0s

P2w

P2s

P1w

P1s

γ

Pv(Pxv,Pyv,Pzv) Ps(Pxs,Pys,Pzs)Pw(Pxw,Pyw,Pzw)

3. 3次元CG

投影変換(View to Screen)

Pv(Pxv,Pyv,Pzv) Ps(Pxs,Pys,Pzs)

Pv

Xv

Zv

YvScreen

Ps

SX

SY

Page 25: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

25

3. 3次元CG

投影変換(スクリーンまでの距離)

スクリーンまでの距離depth = SX/tanφ

XvXv

Zv

YvYvScreen

PsPs

SX

SY

depth

φ

SX:画面のXサイズΦ:画角(広角、望遠)

3. 3次元CG

投影変換(求め方)

Pys = Pyv×depth/Pzv

Pxs = Pxv×depth/Pzv

SCREEN

SCREEN

Pv

Pv

depth

depth

Pzv

Pzv

SY

SX

Pys

Pxs

Pyv

Pxv

Ps

Ps

Ys

Xs

Page 26: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

26

3. 3次元CG

投影変換(行列表現)

depth/Pzv000

00

depth/Pzv0

0depth/Pzv

00

0001

PxvPyvPyz1

=

PxsPvsPzs1

PxvPyvPyz1

depth/Pzv

1000

0010

0100

0001

=

但し、スクリーン座標は2次元なので、Pzsは省略する

Depth=0 または Pzv=0 とならないように注意

3. 3次元CG

投影変換(View to Screen:変換式)

Ps = Tvs Pv

Pv = Tvs-1 Ps

Tvs = depth/Pzv

1000

0010

0100

0001

Tvs-1 = Pzv / depth

1000

0010

0100

0001

World to Screen

Screen to World

Pzv=depthとする

Page 27: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

27

3. 3次元CG

2.4.4 Viewing(Model-World-View-Screen)

Model座標:Pm(pxm,pym,pzm)

World座標:Pw(pxw,pyw,pzw)

View座標:Pv(pxv,pyv,pzvw)

Screen座標:Ps(pxv,pyv)

display座標:Pd(pxd,pyd)

Pw=Tmw PmPm= Tmw -1 Pw

Pv=Twv PwPw= Twv -1 Pv

Ps = Tvs PvPv = Tvs-1 Ps

モデリング変換

視野変換

投影変換

pxd = xs + SX/2pyd = -ys + SY/2

pxs = xd – SX/2pys = -yd + SY/2

3. 3次元CG

Viewing(Model-World-View)

Model座標:Pm(pxm,pym,pzm)

Screen座標:Ps(pxv,pyv)

display座標:Pd(pxd,pyd)

Pv= Tmw-1 Twv-1 Tvs-1 Ps Ps = Tvs Twv Tmw Pv

pxd = xs + SX/2pyd = -ys + SY/2

pxs = xd – SX/2pys = -yd + SY/2

Xw

Xv

Zv

Yv

Yw

Zw

World Coordination

View Coordination

視軸

目標点

視点

ViewPoint

TargetPoint

Screen

P0wP0s

P2w

P2s

P1w

P1sφ

Page 28: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

28

3. 3次元CG

2.5 3Dクリッピング

2次元のクリッピングと同様に描画する必要のない形状を除去する

手順1. View Volumeを求める2. Bounding Boxを求める3. 交差判定を行う4. 交差したBounding Box内の形状とクリップ面との交差面を取り出す

[交差面計算は、処理系(OpenGLなど)が行う]

3. 3次元CG

View Volume (視体積)

Xv

Zv

Yv

視軸

Screen

前面クリッピング面

背面クリッピング面

View Volume

対象形状がビューボリューム内に有るか無いか判定する

Page 29: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

29

3. 3次元CG

Bounding Box

対象形状を球あるいは直方体(バウンディングボックス)でつつみ、ビューボリュームとの交差を判定する

Xv

Zv

Yv

視軸

Screen

前面クリッピング面

背面クリッピング面

View VolumeBounding Box

3. 3次元CG

Cohen-Sutherland Algorithm(順次クリッピング)

Xv

Zv

Yv

視軸

Zmin

前面クリッピング面

標準ビューボリューム

(1,1,1)

(1,-1,1)

(-1,-1,1)

(-1,1,1)

(0,0,0)

背面クリッピング面 ビューボリュームの前 (Z<Zmin)

ビューボリュームの後 (Z>1)

ビューボリュームの左 (X<-Z)

ビューボリュームの右 (X>Z)

ビューボリュームの下 (Y<-Z)

ビューボリュームの上 (Y>Z)

P1 or P2 = 000000

P1 & P2 != 000000

If

then

thenelse

else if

線分全体が標準ボリューム内

線分全体が標準ボリューム外

線分の一部が標準ボリューム内の可能性有り

Page 30: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

30

3. 3次元CG

BSP(Binary Space-Partioning)-Tree

対象形状(面の集合)を視点の前後の面に分解するBSP-Treeは隠面処理にも利用される

3. 3次元CG

BSP(Binary Space-Partioning)-Tree

領域を区切ることにより、領域が限定され、前後関係も構築されるゲームやCG描画に多用されている技術である

Page 31: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

31

3. 3次元CG

課題1:まとめ(座標変換)

次の文章はコンピュータグラフィックスにおける3次元座標変換について説明したものである。文中に入る適切な語句を記述せよ。

コンピュータグラフィックスに用いられる座標は(1)円柱や球など形状毎に決められた座標である<A>座標(2)実際の描画対象となる3次元空間座標である<B>座標(3)視点を原点とし、<C>をZ軸とする<D>座標(4)スクリーン中心を原点とし<C>に直交する<E>座標がある。一般に形状を定義する空間は右手、左手座標のうち<F>座標が用いられ、スクリーンに投影する<D>座標は、<G>座標が用いられる。<A>座標に定義された形状を<B>座標に変換する手順を<H>変換という。また、<B>座標に対して設定した、視点、目標点、画角、画面の傾き、スクリーンサイズを与えて、<D>座標に変換する手順を<I>変換という。そして、<D>座標で表された形状を<E>座標に変換する手順を<J>変換という。この変換には遠近感を出さずに投影する<K>投影と、通常使われる遠近感を出す<L>投影がある。この変換により、3次元立体を2次元に映し出すことができる。<I>変換における演算手順を行列で表すと(1)平行移動(Tp), (2)Yw軸回りの回転(Tα),(3)Xw軸回りの回転(Tβ), (4)Zw軸回りの回転(Tγ),(5)Zw軸の反転(Tinv)となり,これらの変換を順に行い、両座標の座標軸を一致させればよい。故に、<B>座標の点Pwを<D>座標の点Pvに変換するには、上述の行列を用いてPv = <M>Pw で表すことができる。逆に、PvをPwに変換するには、上述の行列を用いてPw = <N>Pv で表すことができる。

3. 3次元CG

課題1:座標変換

Xw

Xv

Xv

Zv

Zv

Yv

Yv

Yw

Zw

視軸

目標点

目標点

視点 ScreenScreen

P0wP0s

P2w

P2s

P1w

P1sφ

次に、<J>変換では、視点からスクリーンまでの距離dが必要となる。画角φとスクリーンの画面サイズ2×SXが与えられたとき、dは d=<O>

で求めることができる。この関係より<D>座標で表された点Pv(xv,yv,zv)は、<E>座標Ps(xs,ys)ではdを用いて

xs = <P>xv ys = <P>yv

で表すことができる。この過程を経て、<B>座標の点をスクリーン上の点に映し出すことが可能となる。

Page 32: Computer Graphics - numazu-ct.ac.jpfujio/personal/jp/kougi/...1 2. 2次元CG Computer Graphics Numazu College of Technology Dept. of Computer & Control Production System Lab. 2. 3-Dimension

32

3. 3次元CG

課題2:まとめ(手計算)

問.モデル座標上の点(9,5,5)が各座標変換や投影により座標値がどのように変

化するかを示せ

モデル座標原点のワールド座標での位置 C(50,60,30)、回転は無し

視点 (100,100,100)、スクリーンまでの距離 70、目標点 (100,100,0)画面サイズ(SX/2=SY/2=100)、画面の傾き(左回りに90度)

Ans モデル座標(9,5,5) ワールド座標[ ]ビュー座標(スクリーンの回転前)[ ]ビュー座標(スクリーンの回転後)[ ]スクリーン座標 [ ]

XmYm

Zm

Cylinder

(50,60,30)

Xw XwYw

Ys

Xs

Yv

Xv

Zw Zw

ScreenYw

3. 3次元CG

課題3:まとめ(行列計算)

問.モデル座標上の点(9,5,5)が各座標変換や投影により座標値がどのように変化するかを示せ。ただし、変換マトリックス(合成マトリックス)を用いて解くこと。

モデル座標原点のワールド座標での位置 C(50,60,30)、回転は無し

視点 (100,100,100)、スクリーンまでの距離 70、目標点 (100,100,0)画面サイズ(SX/2=SY/2=100)、画面の傾き(左回りに90度)

Ans モデリング変換行列Tmと変換後の座標[ ]ビューイング変換行列Tv

ビュー座標(スクリーンの回転前)[ ]ビュー座標(スクリーンの回転後)[ ]スクリーン座標 [ ]

XmYm

Zm

Cylinder

(50,60,30)

Xw XwYw

Ys

Xs

Yv

Xv

Zw Zw

ScreenYw