Transformasi 3D pada
dasarnya hampir sama dengan transformasi 2D, hanya pada 3D kita menghitung
sumbu Z. Sama seperti pada 2D, ada tiga transformasi dasar yang
dapat dilakukan terhadap verteks, yaitu:
- Translasi.
- Pensekalaan.
- Rotasi.
Titik hasil transformasi dapat diperoleh melalui rumus affine
transformation
Q = P * M + tr
Dimana:
Q: (Qx, Qy, Qz)
menyatakan matrix 1x3 yang berisi titik hasil transformasi.
P: (Px, Py, Pz)
menyatakan matrik 1x3 yang berisi titik yang akan ditransformasi.
tr: (trx, try, trz)
menyatakan matriks 1x3 yang berisi banyaknya pergeseran sumbuk x,y, z.
M: Matriks
transformasi berukuran 3x3
seperti berikut :
seperti berikut :
KONSEP 3 DIMENSI
Untuk mendapatkan tampilan 3D yang dimodelkan dalam koordinat dunia, pertama harus menentukan koordinat referensi untuk “kamera”. Koordinat referensi ini mendefinisikan posisi dan orientasi untuk bidang datar kamera,
yang digunakan untuk menampilkan objek.
Deskripsi objek dikirim ke koordinat referensi kamera
dan diproyeksikan ke display plane (bidang datar untuk tampilan).
Titik-titik di dunia nyata
dipetakan ke dalam ruang 2 dimensi.
- Cahaya yang menyebabkan suatu objek dapat terlihat
- Warna objek yang ditentukan dari properti objek tersebut
TRANSLASI
Setelah sistem koordinat kamera terbentuk, maka harus
dipindah dan disesuaikan ke origin dari koordinat kamera. Untuk mengembalikan ke posisi origin maka dilakukan
matriks inverse translasi dari koordinat kamera.
Transformasi Koordinat Dunia ke
Koordinat Kamera
SCALLING
(PENSKALAAN)
Penskalaan dilakukan
dengan mengisi tr = (0,0,0) dan matriks M diatur seperti beikut.
ROTASI
Untuk menyesuaikan ke sistem koordinat maka dapat juga
dikatakan bahwa titik yang yang akan dipindah ke koordinat kamera diproyeksikan
ke sistem koordinat kamera (u,v,n). Maka :
Berbeda dengan rotasi
di 2D yang menggunakan titik pusat(0,0) sebagai pusat perputaran,
rotasi 3D menggunakan
sumbu koordinat sebagai pusat perputaran. Dengan demikian ada 3
macam rotasi yang
dapat dilakukan, yaitu:
§ Rotasi terhadap sumbu
X
§ Rotasi terhadap sumbu
Y
§ Rotasi terhadap sumbu
Z
Rotasi terhadap sumbu
X, Y, dan Z diperlihakan seperti pada gambar berikut:
Mengingat ada 3 buah sumbu rotasi maka matriks transformasi yang digunakan
juga bergantung kepada sumbu putar. Adapun isi masing-masing transformasi
sesuai dengan sumbu putar didefinisikan sebagai berikut.
Berdasarkan penjelasan sebelumnya maka urutan
transformasinya adalah translasi kemudian rotasi. Tidak berlaku sebaliknya.
Maka bisa didefinisikan
matriks gabungan untuk transformasi ke koordinat kamera adalah M = R.T
M adalah matriks transformasi ke koordinat kamera.
R adalah matriks rotasi dan T adalah matriks translasi.
Jadi untuk mendapatkan posisi titik di koordinat
kamera rumusnya adalah : Koord_cam = M.Koord_dunia.
Disini saya juga
menyediakan program yang telah di implementasikan di aplikasi Basic4GL. Program
tersebut merupakan implementasi dari transformasi 3 dimensi. Berikut dapar di
download soure code nya. Jika tidak memiliki aplikasi Basic4GL juga dapat di
download dibawah ini.
Komentar
Posting Komentar