mathematics for 3d graphics

Post on 03-Jul-2015

404 Views

Category:

Technology

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

Was used at Kosen Conference in Kinki.

TRANSCRIPT

Mathematics for 3D Graphics

3Dグラフィックスのための数学

自己紹介@a3geek (ID変えました)

「アーさん」です !

チームラボ (teamLab Inc.) Interaction Engineer

!

福井高専自主卒業組 数学は苦手です

こんな人のために(3Dで使う数学って難しそう……)

(っていうか数学って難しそう……)

( ˘ω˘)

( ˘ω˘)

(っていうか数学苦手だから無理)( ˘ω˘)

数学むずかしい!

使うだけなら 難しくない!!

\こわくないよ/

座標とベクトル

マトリクスと計算

座標とベクトルの違い

(x1, y1, z1,w1)

(x2, y2, z2,w2)

x

Y

Z

座標1 (x, y, z, 1)

座標2 (x+a, y+b, z+c, 1+0)

ベクトル (a, b, c, 0)

座標=

位置情報ベクトル=

方向情報

x

Y

Z

座標1 (x, y, z, 1)

座標2 (x+a, y+b, z+c, 1+0)

ベクトル (a, b, c, 0)

座標1をベクトルの方向に移動したら座標2

データ的には 違いがない

(x, y, z, w)

であらわす!

座標とベクトルは両方共

ん?

w?

wって大事?

とても大事

座標はw=1

ベクトルはw=0

しかもwの値は決まっている

マトリクスが

それを知るには

必要になる

マトリクスって?

マトリクスとは

座標やベクトルを変換するのに必要なもの

(行列とも言う)

X Y Z W

a e i

m

d h l p

c g k o

b f j n

X’ Y’ Z’ W’

座標 or ベクトル行列変換された

座標 or ベクトル

行列

X Y Z Wa e i

m

d h l p

c g k o

b f j n

X’ = X * a + Y * b + Z * c + W * d掛けあわせて加算

X Y Z W

X’ Y’ Z’ W’

座標 or ベクトル変換された

座標 or ベクトル

変換には何があるの?

拡大縮小

回転

平行移動

変換行列は決まってる

変換には何があるの?

拡大縮小

回転

平行移動

Sx 0 0 0

0 0 0 1

0 0 Sz 0

0 Sy 0 0

Sx、Sy、SzはそれぞれX軸、Y軸、Z軸に対する倍率

X Y Z W

Sx 0 0 0

0 0 0 1

0 0 Sz 0

0 Sy 0 0

X * Sx Y * Sy Z * Sz

W

拡大縮小行列 座標 or ベクトル倍率が変化した

座標 or ベクトル

変換には何があるの?

拡大縮小

回転

平行移動

Y軸に対する回転

X軸に対する回転

1 0 0 0

0 0 0 1

0 -sinθx cosθx

0

0 cosθx sinθx

0

cosθy 0

-sinθy 0

0 0 0 1

sinθy 0

cosθy 0

1 0 0 0

(θxはX軸に対する回転量)

(θyはY軸に対する回転量)

Z軸に対する回転

cosθz sinθz

0 0

0 0 0 1

1 0 0 0

-sinθz cosθz

0 0(θzはZ軸に対する回転量)

変換には何があるの?

拡大縮小

回転

平行移動

1 0 0 0

Px Py Pz 1

0 0 1 0

0 1 0 0

Px、Py、PzはそれぞれX軸、Y軸、Z軸に対する移動量

X Y Z W

1 0 0 0

Px Py Pz 1

0 0 1 0

0 1 0 0

X + Px * W Y + Py * W Z + Pz * W

W

平行移動行列 座標 or ベクトル平行移動した

座標 or ベクトル

?!

X Y Z W

1 0 0 0

Px Py Pz 1

0 0 1 0

0 1 0 0

X + Px * W Y + Py * W Z + Pz * W

W

平行移動行列 座標 or ベクトル平行移動した

座標 or ベクトル

w!

wの必要性

w要素によって

座標とベクトルの 性質の違いによる問題を解決する

性質の違い?

拡大縮小 回転 平行移動

座標 ○ ○ ○

ベクトル ○ ○ ×

ベクトルは方向を表しているため 実体が存在しない

平行移動の影響を受けない

座標の時

ベクトルの時w = 1

w = 0

X Y Z 1

1 0 0 0

Px Py Pz 1

0 0 1 0

0 1 0 0

X + Px * 1 Y + Py * 1 Z + Pz * 1

W

W=1の時は平行移動する → 座標

W=0の時は平行移動しない → ベクトル

X Y Z 0

1 0 0 0

Px Py Pz 1

0 0 1 0

0 1 0 0

X + Px * 0 Y + Py * 0 Z + Pz * 0

W

平行移動における矛盾 を解消する!

wって大事!

数学むずかしくない!\こわくないよ/

top related