Anda di halaman 1dari 4

BAB V

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

atau P' = T * P dimana


 X '
Y ' 
P'   
Z ' 
 
1 

Komputer Grafis 20181 /


Anisya
1 0 0 Dx 
0 1 0 Dy 
T    T ( Dx, Dy , Dz )
0 0 1 Dz 
 
0 0 0 1 

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

Komputer Grafis 20181 /


Anisya
1 0 0 0
0 cos( )  sin( ) 0
Rx  
0 sin( ) cos( ) 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.

5.5 OpenGL Transform Operasi

Dalam terjemahan OpenGL, rotasi, dan skala yang dilakukan dengan menggunakan perintah
seperti:
glTranslate{fd} (X, Y, Z) - glTranslatef (1,0, 2,5, 3,0)

Komputer Grafis 20181 /


Anisya
glRotate{df} (Angle, X, Y, Z) - glRotatef (60,0, 0,0, 0,0, 1,0)
glScale{df} (X, Y, Z) - glScalef (1,0, 1,5, 2,0)
Apa perintah ini dilakukan dalam praktek adalah untuk menghasilkan matriks transformasi yang
sesuai untuk operasi yang diminta, kalikan dengan matriks apapun saat ini di atas matriks
tumpukan sedang aktif, dan mengganti matriks di atas tumpukan dengan hasilnya. Jika Anda
ingin menghitung dan menyimpan hasil dari serangkaian kompleks transformasi, satu
pendekatan adalah untuk mendorong sebuah matriks identitas ke stack, melakukan setiap operasi
pada gilirannya, dan kemudian menyimpan salinan hasil dari puncak stack menjadi variabel
global atau statis, (mungkin muncul itu dari tumpukan jika tidak akan dibutuhkan di sana
segera.)

Komputer Grafis 20181 /


Anisya

Anda mungkin juga menyukai