03 Projection C

18

Click here to load reader

Transcript of 03 Projection C

Page 1: 03 Projection C

Proyeksi (perhitungan matematikanya)

Page 2: 03 Projection C

Menentukan Cara Pandang

Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 1

• Penempatan view volume dengan– Position

– Look dan Up vector

• Bentuk view volume ditentukan oleh– View angles

– Far dan Near clipping planes

• Koordinat yang digunakan– World coordinates : x, y, z

– Camera coordinates : u, v, n

Page 3: 03 Projection C

Dari Model ke Layar (1)

Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 2

• Mendapatkan gambar 2D dari model 3D sulit• Tetapi bila view volumenya standar akan jadi mudah• View volume standar disebut sebagai canonical view

Page 4: 03 Projection C

Dari Model ke Layar (2)

Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 3

Jadi yang harus dilakukan adalah:

1. Transformasikan view volume sebarang kamera ke

canonical view volume normalizing view volume

2. Dari canonical view lakukan clipping dan proyeksi untuk mendapatkan gambar 2D

Sebarang view Canonical view

Page 5: 03 Projection C

Normalizing View Volume

Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 4

• Tujuannya mengubah sebarang view menjadi canonical view• Dapat dilakukan dengan transformasi• Pada parallel projection, transformasi yang dibutuhkan:

– translation

– rotation

– scaling

• Pada perspective projection, transformasi yang dibutuhkan:– translation

– rotation

– scaling

– perspective transformation

• Semua transformasi dapat digabung dalam matrix 4x4

Page 6: 03 Projection C

Nomalizing Transformation Viewing Transformation

Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 5

• Normalizing Transformation: mengubah sebarang view menjadi canonical view

• Viewing Transformation: inverse dari Normalizing Transformation

• Pertegas fokus kita!Kita kini berusaha menyusun

NORMALIZING TRANSFORMATION MATRIX

Page 7: 03 Projection C

Mari Kita Mulai…

Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 6

Bersiaplah menghitung matrix normalizing transformation dari parameter model kamera

Page 8: 03 Projection C

Translation Matrix

Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 7

• Pindahkan kamera ke titik pusat (0,0,0)

1000

100

010

001

)(x

y

x

Pos

Pos

Pos

PosT

p’=T(-Pos)p

Page 9: 03 Projection C

Rotation Matrix (1)

Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 8

• Kita ingin ‘memutar’ sumbu kamera (u,v,n) ke sumbu standar (x,y,z). Tapi itu sulit dilakukan!

• Jadi harus dibuat akal-akalan yang lebih mudah:– Buat matrix untuk ‘memutar’ sumbu standar (x,y,z) ke arah sumbu

kamera (u,v,n). Ini mudah dilakukan.

– Lalu gunakan matrix inversnya!

1000

0...

0...

0...

znzvzu

ynyvyu

xnxvxu

M

1000

0...

0...

0...

znynxn

zvyvxv

zuyuxu

M T

Ini matrixnya Ini inversnya

Invers matrix rotasi mudah dicari, yaitu

transpose-nya

Look

Up (v)

u

n

Page 10: 03 Projection C

Rotation Matrix (2)

Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 9

Mencari nMencari n mudah, karena n selalu berlawanan dengan vector Look

Page 11: 03 Projection C

Rotation Matrix (3)

Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 10

Mencari vIngat, v tidak selalu sejajar dengan Up

Page 12: 03 Projection C

Rotation Matrix (4)

Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 11

Mencari uKarena n dan v tegak lurus, maka u dapat dihitung dari cross-

productnya

Page 13: 03 Projection C

Scaling Matrix Sxyz

Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 12

• Scaling matrix digunakan agar view angle menjadi 900

Page 14: 03 Projection C

Scaling Matrix S1/far

Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 13

• Agar far clipping plane ada di z=-1

Page 15: 03 Projection C

Perspective Matrix

Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 14

• Untuk membuat fustum jadi kubus

=D =

Page 16: 03 Projection C

Matrix Gabungan

Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 15

• Matrix gabungan dari operasi-operasi tersebut adalah:

Digabung seperti biasa

kok!

ampun, nyerah deh

Page 17: 03 Projection C

Clipping

Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 16

• Menentukan mana yang digambar mana yang dibuang• x dan y harus di antara –1 dan +1• Z harus di antara 0 dan +1

Page 18: 03 Projection C

Projection

Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 17

• Proyeksikan hasil akhir ke layar• Untuk parallel projection, tinggal menghilangkan komponen z• Untuk perspective projection:

x’ = x / zy’ = y / z

• Sesuaikan dengan resolusi layar, misal untuk layar 1024x1024 dengan titik (0,0) di kiri atas, maka:

xs = 512 (x+1)ys = 512 (-y+1)