Melakukan Pengesetan Perseptive View dan View Port Fungsi Transformasi : Part 2 Grafika Komputer

Melakukan Pengesetan Perseptive View dan View Port Fungsi Transformasi : Part 2

Teknik informatika memang banyak ilmu yang menarik salah satunya berikut ini. Kelanjutan dari serial sebelumnya , sekuel kali ini , akan membahas bagaimana objek dapat ber-translasi, rotasi, dan scaling. Tentu kalian pernah mendengar istilah ini di saat pelajaran matematika. Yup, benar sekali, semua dari fungsi-fungsi ini mengandung matematika apalagi matriks. Tapi tenang aja, kalian tidak perlu memahami secara betul dari proses matrinya kalau memang bingung , cukup menggunakan fungsi yang tersedia saja. Walau nantinya hanya menggunakan fungsi yang tersedia, tapi kalian perlua tahu gimana dasar dari fungsi itu dibuat. Jadi tunggu apa lagi , here I go ,,,

A. Transformasi di OpenGL

Transformasi vertex di OpenGL sebagai berikut :

clip_image002

Gambar Tahapan Transformasi Vertex di OpenGL

Untuk menggambar sebuah vertex dengan tiga kali transformasi di OpenGL seperti potongan program berikut:

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();// C = I

glMultMatrix(N); // C = N

glMultMatrix(M); // C = NM

glMultMatrix(L); // C = NML

glBegin(GL_POINTS);

glVertex3f(v); // N(M(Lv))

glEnd();

Pernyataan yang ditulis paling akhir akan dioperasikan pertama kali, sedangkan pernyataan yang ditulis di awal dioperasikan terakhir.

Sedangkan matrik transformasi terdiri dari tiga operasi dasar yaitu :

1. Translasi

2. Scaling

3. Rotasi

B. Translasi

Translasi adalah proses perpindahan posisi dari obyek gambar. Formulasi dari proses translasi dapat dijelaskan sebagai berikut:

clip_image003clip_image005

Gambar 5. 11 Proses translasi

Formulasi translasi adalah:

clip_image007

Bentuk matrik dari proses transformasi di atas dapat dituliskan dengan:

clip_image009

Sehingga matrik transformasi dari proses transalasi adalah:

clip_image011

Untuk membuat fungsi yang menghasilkan matrik translasi ini, terlebih dahulu dibuat fungsi untuk menghasilkan matrik identitas

clip_image013

OpenGL mempunyai fungsi translasi:

void glTranslatef(dx,dy,dz)

clip_image015

Gambar glTranslatef(0.,2.,-2)

C. Scaling

Scaling adalah proses membesarkan/mengecilkan jarak titik sebesar m, yang ditunjukkan oleh gambar 3.12 berikut:

clip_image016

Gambar 5. 13 Proses scaling

Proses scaling dapat dirumuskan dengan:

clip_image020

Secara bentuk matrik formulasi di atas dapat dituliskan dengan:

clip_image022

Dan matrik transformasi dari proses scaling adalah sebagai berikut:

clip_image024

OpenGL mempunyai fungsi scaling:

glScalef(sx,sy,sz)

clip_image026

Gambar 5. 14 glScalef(2.0,-0.5,1.0)

Melakukan skala pada obyek sebesar x,y,z kali sesuai dengan sumbu x,y dan z masing-masing

D. Rotasi

clip_image027

Rotasi adalah proses memutar titik sebesar ao dengan titik pusat putaran berada pada titik pusat koordinat, yang ditunjukkan oleh gambar 3.13 berikut:

Gambar Proses rotasi

Proses rotasi dapat dirumuskan dengan:

clip_image029

Dan matrik transformasi dari proses rotasi adalah sebagai berikut:

clip_image031

OpenGL mempunyai fungsi rotasi:

void glRotatef*(sudut,x,y,z)

clip_image033

Gambar 5. 16 glRotatef(45.,0.,0.,0.,1.)

Merotasi obyek dengan arah sudut berlawanan arah jarum jam (counterclockwise) dari posisi awal (x,y,z) diputar sebesar sudut.

E. Matrik Identitas

Semua matrik transformasi dibentuk dari matrik indentitas, untuk membuat fungsi yang menghasilkan matrik identitas OpenGL mempunyai fungsi yaitu:

glLoadIdentity()