TRANSFORMASI 3D
I. Tujuan
1. Praktikan mampu mengimplementasikan penggunaan fungsi glTranslatef, glScalef, dan
glRotatef pada objek 3D serta penggunaan push matrix dan pop matrix.
II. Teori
A. Konsep Dasar Transformasi 3D
Transformasi 3D (3 Dimensi) merupakan pengembangan dari transformasi 2D.
Rumus transformasi ditulis dalam perkalian matriks 3x3. Untuk gambar objek 3D yang
ditentukan dengan sumbu koordinat x, y dan z ditulis dalam vector homogenya[x,y,z,1]
sehingga rumus transformasi ditulis dalam perkalian matriks 4x4.
Bentuk- bentuk Transformasi 3D antara lain:
1. Translasi 3D (menggeser)
Operasi yang menyebabkan perpindahan objek tiga dimensi dari satu tempat ke tempat
yang lainnya. Perubahan ini berlaku dalam arah yang sejajar dengan sumbu x, y, z.Untuk
mentranslasikan suatu titik (x,y,z) dengan pergeseran sebesar (tx, ty, tz) menjadi titik
(x‟,y‟,z‟).
Sintaks pada program untuk proses translasi adalah glTranslate(1.0f, -1,0f, 2.0f);
3. Rotasi 3D (memutar)
Berbeda dengan rotasi 2 dimensi yang menggunakan titik pusat (0,0) sebagai pusat
perputaran, rotasi 3 dimensi menggunakan sumbu koordinat sebagai pusat perputaran.
Dengan demikian ada 3 macam rotasi yang dapat dilakukan, yaitu: rotasi sumbu x,y dan
z.
Gambar 7.6 Rotasi dan sumbu rotasi
void init(){
glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeModel (GL_FLAT);
}
void display(void){
glClear (GL_COLOR_BUFFER_BIT);
glPushMatrix();
glColor3f (2.0, 0.0, 0.0);
glRotatef ((GLfloat) year, 0.0, 1.0, 0.0);
glRotatef ((GLfloat) day, 0.0, 1.0, 0.0);
glutWireSphere(1.0, 20, 10); /* Gambar Matahari */
glPopMatrix();
int main(){
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize (600, 600);
glutInitWindowPosition (100, 100);
glutCreateWindow ("Transformasi 3D");
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutKeyboardFunc(keyboard);
glutMainLoop();
}
III. Tugas
1. Buatlah animasi objek 3D berbentuk rumah/gedung/jalanan yang menerapakan perpaduan
antara translasi, penskalaan dan rotasi!