Proyeksi (perhitungan matematikanya)
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
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
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
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
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
Mari Kita Mulai…
Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 6
Bersiaplah menghitung matrix normalizing transformation dari parameter model kamera
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
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
Rotation Matrix (2)
Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 9
Mencari nMencari n mudah, karena n selalu berlawanan dengan vector Look
Rotation Matrix (3)
Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 10
Mencari vIngat, v tidak selalu sejajar dengan Up
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
Scaling Matrix Sxyz
Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 12
• Scaling matrix digunakan agar view angle menjadi 900
Scaling Matrix S1/far
Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 13
• Agar far clipping plane ada di z=-1
Perspective Matrix
Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 14
• Untuk membuat fustum jadi kubus
=D =
Matrix Gabungan
Grafika Komputer © Sekolah Tinggi Teknik Surabaya, 2003 15
• Matrix gabungan dari operasi-operasi tersebut adalah:
Digabung seperti biasa
kok!
ampun, nyerah deh
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
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)
Top Related