TRANSFORMASI 3 DIMENSI
5.1 Transformasi 3D
Salah satu sub bagian dari grafika komputer adalah pemodelan objek (object modeling). Pada
dasarnya transformasi adalah memindahkan objek tanpa merusak bentuk. Tujuan transformasi
adalah : Merubah atau menyesuaikan komposisi pemandangan. Memudahkan membuat objek
yang simetris. Melihat objek dari sudut pandang yang berbeda. Memindahkan satu atau beberapa
objek dari satu tempat ke tempat lain, ini biasa dipakai untuk animasi komputer.
Transformasi pada dunia 3 dimensi, pada dasarnya sama dengan transformasi pada 2 dimensi,
hanya pada 3 dimensi kita juga memperhitungkan sumbu Z. Sama seperti pada 2 dimensi, ada
tiga transformasi dasar yang dapat dilakukan yaitu translasi, penskalaan, rotasi. Perbedaannya
adalah pada objek 3 dimensi proses transformasinya dilakukan dengan mempertimbangkan
koordinat yang merupakan besarnya kedalaman dari objek. Transformasi pada 3 dimensi pada
dasarnya sama dengan transformasi pada 2 dimensi, hanya pada 3 dimensi kita juga
memperhitungkan sumbu z. sama seperti pada 2 dimensi, ada 3 transformasi dasar yang
dilakukan terhadap vertex, yaitu: translasi, penskalaan, rotasi. Titik hasil transformasi dapat
diperoleh melalui rumus dibawah ini disebut sebagai Affine Transformation.
Serupa dengan transformasi 2D, yang menggunakan matriks 3 x 3, sedangkan untuk transformasi
3D menggunakan matriks 4 x 4 (X, Y, Z, W)
5.2 Translasi 3D
Titik (X,Y,Z) akan dirubah oleh jumlah Dx, Dy, dan Dz ke lokasi (X’, Y’, Z’)
X ' Dx X
Y ' Dy Y
Z ' Dz Z
5.3 Scaling 3D
X '
Y '
P'
Z '
1
Sx 0 0 0
0 Sy 0 0
S S ( Sx, Sy, Sz )
0 0 Sz 0
0 0 0 1
X
Y
P
Z
1
5.4 Rotation 3D
Rotasi 3 dimensi menggunakan sumbu koordinat sebagai pusat perputaran. Dengan demikian ada
3 macam rotasi yang dapat dilakukan, yaitu:
a. Rotasi sumbu x
b. Rotasi sumbu y
c. Rotasi sumbu z
Untuk rotasi 3D, kita perlu memilih sumbu untuk memutar objek. Baik itu sumbu X, sumbu Y,
atau sumbu Z.
X '
Y '
P'
Z '
1
cos( ) sin( ) 0 0
sin( ) cos( ) 0 0
Rz
0 0 1 0
0 0 0 1
cos( ) 0 sin( ) 0
0 1 0 0
Ry Ry ( )
sin( ) 0 cos( ) 0
0 0 0 1
X
Y
P
Z
1
Sekarang bagaimana jika rotasi yang terjadi selain di sekitar salah satu sumbu Cartesian? Ada
dua cara untuk melihat hal ini:
Serangkaian rotasi sekitar sumbu Cartesian, yang dapat dikombinasikan dengan mengalikan
matriks yang sesuai bersama-sama. Sekali lagi, matriks righmost adalah operasi yang terjadi
pertama. Perhatikan bahwa dengan pendekatan ini mungkin ada lebih dari satu kombinasi rotasi
yang menghasilkan hasil akhir yang sama.
Sumbu alternatif rotasi dapat dipilih, selain sumbu Cartesian, dan titik diputar jumlah yang
diberikan tentang sumbu ini. Untuk setiap perubahan orientasi terdapat sumbu dan rotasi unik
sudut tunggal (0 <= theta <= 180 derajat) yang akan menghasilkan rotasi yang diinginkan.
Pendekatan alternatif ini adalah dasar untuk "quaternions", yang tidak mungkin akan dibahas
lebih lanjut dalam kursus ini. (Quaternions digunakan berat dalam paket WorldToolKit, yang
tidak lagi diproduksi, dan dapat berguna untuk interpolasi rotasi antara dua sudut miring.)
Komposisi ditangani dengan cara yang mirip dengan kasus 2D, mengalikan matriks transformasi
dari kanan ke kiri.
Dalam terjemahan OpenGL, rotasi, dan skala yang dilakukan dengan menggunakan perintah
seperti:
glTranslate{fd} (X, Y, Z) - glTranslatef (1,0, 2,5, 3,0)