Sangat disayangkan, materi yang diberikan oleh dosen sangat terbatas.
Mulai dari proses instalasi openGL, cara membuat objek, operasi-operasi matrix, textures, pencahayaan semua harus di’ulik’ sendiri.
Untungnya ada ‘mbah gugel’, akhirnya jadi juga, walau tampangnya agak “horor” karena full menggunakan wireframe (belum sempat ngulik textures and lighting). 🙂
Berikut isi method displaynya:
//kepala gl.glPushMatrix();//save current matrix gl.glScalef(1.0f, 1.0f, 0.4f); //untuk mengubah ukuran benda glut.glutWireCube(1.0f);//wireframe kubus dengan ukuran 1 gl.glPopMatrix();//pop biar reset //baju gl.glPushMatrix(); gl.glTranslatef(0.0f, -0.58f, 0.0f);//mentranslate titik koordinat start gl.glScalef(1.0f, 0.15f, 0.4f); gl.glColor3d(1.0, 1.0, 1.0); glut.glutWireCube(1.0f); gl.glPopMatrix(); //celana gl.glPushMatrix(); gl.glTranslatef(0.0f, -0.73f, 0.0f);// -0.58-0.15=-0.73 gl.glScalef(1.0f, 0.15f, 0.4f); gl.glColor3d(1.0, 0.0, 0.0); glut.glutWireCube(1.0f); gl.glPopMatrix(); //celana kiri gl.glPushMatrix(); gl.glTranslatef(-0.2f, -0.84f, 0.0f);// -0.73-0.15=-0.88 gl.glRotatef(90, 1.0f, 0.0f, 0.0f); gl.glColor3d(1.0, 0.0, 0.0); glut.glutWireCylinder(0.1, 0.05, 10, 10); gl.glPopMatrix(); //celanan kanan gl.glPushMatrix(); gl.glTranslatef(0.2f, -0.84f, 0.0f);// -0.73-0.15=-0.88 gl.glRotatef(90, 1.0f, 0.0f, 0.0f); gl.glColor3d(1.0, 0.0, 0.0); glut.glutWireCylinder(0.1, 0.05, 10, 10); gl.glPopMatrix(); //kaki kiri gl.glPushMatrix(); gl.glTranslatef(-0.2f, -0.84f, 0.0f);// -0.73-0.15=-0.88 gl.glRotatef(90, 1.0f, 0.0f, 0.0f); gl.glColor3d(1.0, 1.0, 0.0); glut.glutWireCylinder(0.02, 0.5, 5, 5); gl.glPopMatrix(); //kakikanan gl.glPushMatrix(); gl.glTranslatef(0.2f, -0.84f, 0.0f);// -0.73-0.15=-0.88 gl.glRotatef(90, 1.0f, 0.0f, 0.0f); gl.glColor3d(1.0, 1.0, 0.0); glut.glutWireCylinder(0.02, 0.5, 5, 5); gl.glPopMatrix(); //lengan baju kiri gl.glPushMatrix(); gl.glTranslatef(-0.5f, -0.2f, 0.0f); gl.glRotatef(90, 0.0f, -1.0f, 0.0f); gl.glColor3d(1.0, 1.0, 1.0); glut.glutWireCone(0.1, 0.3, 10, 10); gl.glPopMatrix(); //lengan baju kanan gl.glPushMatrix(); gl.glTranslatef(0.5f, -0.2f, 0.0f); gl.glRotatef(90, 0.0f, 1.0f, 0.0f); gl.glColor3d(1.0, 1.0, 1.0); glut.glutWireCone(0.1, 0.3, 10, 10); gl.glPopMatrix(); //lengan kiri gl.glPushMatrix(); gl.glTranslatef(-0.5f, -0.2f, 0.0f); gl.glRotatef(90, 0.0f, -1.0f, 0.0f); gl.glColor3d(1.0, 1.0, 0.0); glut.glutWireCylinder(0.02, 1, 5, 5); gl.glPopMatrix(); //lengan kanan gl.glPushMatrix(); gl.glTranslatef(0.5f, -0.2f, 0.0f); gl.glRotatef(90, 0.0f, 1.0f, 0.0f); gl.glColor3d(1.0, 1.0, 0.0); glut.glutWireCylinder(0.02, 1, 5, 5); gl.glPopMatrix(); //mata kiri gl.glPushMatrix(); gl.glTranslatef(-0.2f, 0.0f, 0.2f); gl.glScalef(1.0f, 1.0f, 0.4f); gl.glColor3d(0.5, 0.7, 1.0); glut.glutWireSphere(0.2, 10, 10); gl.glPopMatrix(); //mata kanan gl.glPushMatrix(); gl.glTranslatef(0.2f, 0.0f, 0.2f); gl.glScalef(1.0f, 1.0f, 0.4f); gl.glColor3d(0.5, 0.7, 1.0); glut.glutWireSphere(0.2, 10, 10); gl.glPopMatrix(); //hidung gl.glPushMatrix(); gl.glTranslatef(0.0f, -0.15f, 0.26f); gl.glScalef(1.0f, 1.0f, 1.5f); gl.glColor3d(1.0, 1.0, 0.0); glut.glutWireSphere(0.06, 10, 10); gl.glPopMatrix(); //mulut gl.glPushMatrix(); gl.glTranslatef(0.0f, -0.35f, 0.2f); gl.glScalef(3.5f, 1.0f, 0.0f); gl.glColor3d(1.0, 0.0, 0.0); glut.glutWireSphere(0.06, 10, 10); gl.glPopMatrix(); //gigi kiri gl.glPushMatrix(); gl.glTranslatef(-0.04f, -0.34f, 0.2f); gl.glScalef(0.8f, 1.1f, 0.5f); gl.glColor3d(1.0, 1.0, 1.0); glut.glutWireCube(0.08f); gl.glPopMatrix(); //gigi kanan gl.glPushMatrix(); gl.glTranslatef(0.04f, -0.34f, 0.2f); gl.glScalef(0.8f, 1.1f, 0.5f); gl.glColor3d(1.0, 1.0, 1.0); glut.glutWireCube(0.08f); gl.glPopMatrix(); gl.glFlush();