Rabu, 01 Mei 2013

Grafika Komputer


Transformasi Objek


A.  DASAR TEORI
Transformasi pada OpenGL disini didasarkan pada transformasi matematika dulu, yaitu suatu model atau bentuk atau teknik memindahkan atau mengubah nilai posisi objek dalam sistem koordinat.  
Pada OpenGL terdapat beberapa tipe Transformasi diantaranya :
         
  Viewing Transformation : tipe transformasi ini memanfaatkan posisi kamera dan cara pandang objek tersebut sehingga jika dilakukan transformasi, maka yang akan melakukan transformasi adalah kamera atau cara pandang objek tersebut
  Modeling Transformation : Memodelkan transformasi dengan cara menggerakkan objek di sekitar layar dan juga merubah objek dalam satuan koordinat lokal menjadi koordinat yang umum. Maksudnya adalah proses transformasi tertuju pada posisi dan orientasi pada pergerakan , perputaran dan ukuran objek.
  Project Transformation : Transformasi ini berfokus pada isi/volume dari objek tersebut dan batasan pandangan dari layar yang ada.
  Viewport Transformation : Transformasi ini memetakan koordinat yang terbuat karena transformasi perspektif pada permukaan layar, Kita juga bisa membayangkan ini sebegai hasil akhir yang mampu memperbesar ataupun memperkecil objek tersebut, atau yang sering kita lakukan adalah seperti melakukan zoom in atau zoom out pada suatu objek, karena pada dasarnya ukuran dari objek tersebut tidak berubah, melainkan cara pandang kita memaksa kita untuk melihat objek tersebut menjadi objek yang lebih besar.

Ada dua cara yang dapat digunakan untuk transformasi gambar yaitu :
1.      Transformasi Objek
Definisinya adalah mengubah koordinat-koordinat dari tiap titik di objek dengan beberapa aturan.
2.      Transformasi Koordinat
Definsinya adalah sistem koordinat yang baru dibuat sebelumnya merupakan perwakilan dari semua titik objek dalam sistem yang baru.
Pada grafika komputer, sistem koordinat suatu objek dapat ditransformasi. Transformasi ini memungkinkan terjadinya perpindahan posisi suatu objek tanpa harus membuat model objek yang baru. Jenis-jenis transformasi yang sering digunakan pada grafika komputer dibagi menjadi 3 macam yaitu translasi, rotasi, dan skalasi.

1.      Fungsi dasar untuk Translasi (perubahan posisi) objek.
GLAPI void APIENTRY glTranslated( GLdouble x, GLdouble y, GLdouble z);
GLAPI void APIENTRY glTranslatef( GLfloat x, GLfloat y, GLfloat z);
Translasi merupakan bentuk transformasi yang memindahkan posisi atau objek, baik pada sumbu x, sumbu y, atau sumbu z. Fungsi yang digunakan untuk melakukan translasi adalah 
glTranslatef(Tx, Ty, Tz)
glTranslated(Tx, Ty, Tz)
Parameter Tx digunakan untuk menentukan arah dan seberapa jauh suatu benda akan dipindahkan berdasarkan sumbu x. Parameter Ty digunakan untuk menentukan arah dan seberapa jauh suatu benda akan dipindahkan berdasarkan sumbu y. Sedangkan parameter Tz digunakan untuk menentukan arah dan seberapa jauh suatu benda akan dipindahkan berdasarkan sumbu z (berlaku pada model 3D).

2.      Fungsi dasar untuk Rotasi objek.
GLAPI void APIENTRY glRotated( GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
GLAPI void APIENTRY glRotatef( GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
Rotasi merupakan bentuk transformasi yang digunakan untuk memutar posisi suatu benda. Fungsi yang digunakan untuk melakukan rotasi ialah :
glRotatef(θ, Rx, Ry, Rz)
glRotated(θ, Rx, Ry, Rz)
Parameter yang dibutuhkan pada fungsi tersebut ada 4 macam, yaitu parameter θ untuk besar sudut putaran, parameter Rx untuk putaran berdasarkan sumbu x, parameter Ryuntuk putaran berdasarkan sumbu y, dan parameter Rz untuk putaran berdasarkan sumbu z. Jika parameter θ bernilai postif, maka objek akan diputar berlawanan arah jarum jam. Sedangkan jika parameter θ bernilai negatif, maka objek akan diputar searah jarum jam.

3.      Fungsi dasar untuk skala (perubahan ukuran ) objek.
void APIENTRY glScaled( GLdouble x, GLdouble y, GLdouble z);
GLAPI void APIENTRY glScalef( GLfloat x, GLfloat y, GLfloat z);
Skalasi merupakan bentuk transformasi yang dapat mengubah ukuran(besar-kecil) suatu objek. Fungsi yang digunakan untuk melakukan skalasi ialah :
glScalef(Sx, Sy, Sz)
glScaled(Sx, Sy, Sz)
Perubahan ukuran suatu objek diperoleh dengan mengalikan semua titik atau atau vertex pada objek dengan faktor skala pada masing-masing sumbu (parameter Sx untuk sumbu x, Sy untuk sumbu y, dan Sz untuk sumbu z).

0 komentar:

Posting Komentar