Anda di halaman 1dari 18

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)
(
(
(
(

=
1 0 0 0
1 0 0
0 1 0
0 0 1
) (
x
y
x
Pos
Pos
Pos
Pos T
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!
(
(
(
(

=
1 0 0 0
0 . . .
0 . . .
0 . . .
z n z v z u
y n y v y u
x n x v x u
M
(
(
(
(

=
1 0 0 0
0 . . .
0 . . .
0 . . .
z n y n x n
z v y v x v
z u y u x u
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 n
Mencari n mudah, karena n selalu berlawanan dengan vector Look
Rotation Matrix (3)
Grafika Komputer Sekolah Tinggi Teknik Surabaya, 2003 10
Mencari v
Ingat, v tidak selalu sejajar dengan Up
Rotation Matrix (4)
Grafika Komputer Sekolah Tinggi Teknik Surabaya, 2003 11
Mencari u
Karena n dan v tegak lurus, maka u dapat dihitung dari cross-
productnya
Scaling Matrix S
xyz
Grafika Komputer Sekolah Tinggi Teknik Surabaya, 2003 12
Scaling matrix digunakan agar view angle menjadi 90
0
Scaling Matrix S
1/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 / z
y = 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)

Anda mungkin juga menyukai