Hai, lama tidak update karena kesibukan persiapan UAS. Kali ini saya akan menjelaskan beberapa fungsi dasar untuk membuat objek pada open GL. Disini saya asumsikan sudah mengenal apa itu open GL dan sudah bisa menggunakannya. Fungsi dasar ini sudah ada di library open GL, namun banyak yang tidak paham bagaimana cara menggunakannya.
Sebelum masuk ke fungsi membuat objeknya, disini saya menggunakan satu fungsi main saja, yaitu :
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitWindowSize(640,480);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
glutCreateWindow("Jendela open gl");
glutDisplayFunc(display);
glClearColor(0.0f, 0.0f, 1.0f, 1.0f);
glutMainLoop();
return 0;
}
Jadi untuk mengganti-ganti objeknya saya lakukan pada prosedur display. Berikut beberapa fungsinya :
1. Point / titik
Saya rasa disini tidak perlu penjelasan mendalam karena tentu kita semua tau tentang titik.
Nah untuk menampilkan titik tersebut, digunakan GL_POINTS dan dibawahnya kita menentukan koordinatnya.void display(void){
glClear(GL_COLOR_BUFFER_BIT);
glPointSize(5.0f); // mengatur besar titik
glBegin(GL_POINTS);
glColor3f(1.0f,0.0f,0.0f);
glVertex3f(0.25,0.25,0.0); // 'titik' posisi titik yang ingin dibuat
glEnd();
glFlush();
}
2. Line / garis
Untuk membuat garis, maka dibutuhkan dua vertex, diantara begin dan end digunakan 2 vertex. Pada bagian begin diisi dengan GL_LINES. Ketika dimasukkan tiga titik maka titik ketiga akan diabaikan.
Untuk membuat garis, maka dibutuhkan dua vertex, diantara begin dan end digunakan 2 vertex. Pada bagian begin diisi dengan GL_LINES. Ketika dimasukkan tiga titik maka titik ketiga akan diabaikan.
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glLineWidth(2.0f);
glBegin(GL_LINES);
glColor3f(1.0f,1.0f,1.0f);
glVertex3f(0.0f,0.2f,0.0f);
glVertex3f(0.0f,-0.2f,0.0f);
glEnd();
glFlush();
}
3. Line loop
Line loop adalah garis yang menyambung ke titik paling awal. Jadi ketika kita punya tiga titik, bukan dua garis yang terbentuk melainkan tiga garis. Garis tambahan tersebut berasal dari garis yang ditarik dari titik terakhir ke titik awal. Pada bagian begin diisikan GL_LINE_LOOP.
Line loop adalah garis yang menyambung ke titik paling awal. Jadi ketika kita punya tiga titik, bukan dua garis yang terbentuk melainkan tiga garis. Garis tambahan tersebut berasal dari garis yang ditarik dari titik terakhir ke titik awal. Pada bagian begin diisikan GL_LINE_LOOP.
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f,0.0f,0.0f);
glBegin(GL_LINE_LOOP);
glVertex3f(0.0f,0.0f,0.0f);
glVertex3f(0.5f,0.5f,0.0f);
glVertex3f(0.7f,0.0f,0.0f);
glEnd();
glFlush();
}
4. Line Strip
Jika titik terakhir membuat garis ke titik awal pada line loop, hal itu tidak ada pada line strip. Jika ada tiga titik maka akan terbentuk 2 garis saja. Titik pertama akan membuat garis dengan titik kedua, titik kedua membentuk garis dengan titik ketiga, dan begitu terus sampai titik terakhir yang ditentukan. Disini GL_LINE_STRIP digunakan pada glBegin
Jika titik terakhir membuat garis ke titik awal pada line loop, hal itu tidak ada pada line strip. Jika ada tiga titik maka akan terbentuk 2 garis saja. Titik pertama akan membuat garis dengan titik kedua, titik kedua membentuk garis dengan titik ketiga, dan begitu terus sampai titik terakhir yang ditentukan. Disini GL_LINE_STRIP digunakan pada glBegin
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f,0.0f,0.0f);
glBegin(GL_LINE_STRIP);
glVertex3f(0.0f,0.0f,0.0f);
glVertex3f(0.5f,0.5f,0.0f);
glVertex3f(0.5f,0.0f,0.0f);
glEnd();
glFlush();
}
5. Triangle
Untuk membuat sebuah segitiga, dibutuhkan tiga titik saja. Jadi diantara begin dan end akan ada tiga titik, jika ada empat maka titik keempat diabaikan. Digunakan GL_TRIANGLES pada pembuatan segitiga
Untuk membuat sebuah segitiga, dibutuhkan tiga titik saja. Jadi diantara begin dan end akan ada tiga titik, jika ada empat maka titik keempat diabaikan. Digunakan GL_TRIANGLES pada pembuatan segitiga
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glColor3f(1.0f,0.0f,0.0f);glVertex3f(-0.1f,-0.1f,0.0f);
glColor3f(0.0f,1.0f,0.0f);glVertex3f(0.0f,-0.1f,0.0f);
glColor3f(.0f,0.0f,1.0f);glVertex3f(0.0f,0.1f,0.0f);
glEnd();
glFlush();
}
6. Triangle Fan
Triangle fan sesuai namanya dibayangkan seperti kipas. Tiga titik akan membentuk sebuah segitiga, titik keempat akan membentuk segitiga dari titik ketiga dan titik paling awal. Untuk contohnya bisa dengan mencoba source code dibawah.
Triangle fan sesuai namanya dibayangkan seperti kipas. Tiga titik akan membentuk sebuah segitiga, titik keempat akan membentuk segitiga dari titik ketiga dan titik paling awal. Untuk contohnya bisa dengan mencoba source code dibawah.
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLE_FAN);
glColor3f(1.0f, 0.0f, 1.0f);
glVertex3f(0.00, 0.0, 0.0);
glVertex3f(0.00, 0.50, 0.0);
glColor3f(0.0f, 1.0f, 1.0f);
glVertex3f(0.7, 0.7, 0.0);
glVertex3f(0.50, 0.00, 0.0);
glEnd();
glFlush();
}
7. Triangle Strip
Dengan adanya kata strip, maka pembuatan segitiga dilakukan berlanjut. Maksudnya berlanjut yaitu, misal terdapat empat titik, tiga titik akan membentuk segitiga, titik terakhir akan membentu segitiga dengan menggunakan dua titik sebelumnya, yaitu titik kedua dan ketiga. Jika ada titik baru, maka akan dibentuk segitiga dengan dua titik sebelumnya.
Dengan adanya kata strip, maka pembuatan segitiga dilakukan berlanjut. Maksudnya berlanjut yaitu, misal terdapat empat titik, tiga titik akan membentuk segitiga, titik terakhir akan membentu segitiga dengan menggunakan dua titik sebelumnya, yaitu titik kedua dan ketiga. Jika ada titik baru, maka akan dibentuk segitiga dengan dua titik sebelumnya.
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLE_STRIP);
glColor3f(1.0f, 0.0f, 1.0f);
glVertex3f(0.00, 0.0, 0.0);
glVertex3f(0.00, 0.50, 0.0);
glColor3f(0.0f, 1.0f, 1.0f);
glVertex3f(0.7, 0.7, 0.0);
glColor3f(0.0f, 0.0f, 0.0f);
glVertex3f(0.50, 0.00, 0.0);
glEnd();
glFlush();
}
8. Quads
Quad adalah segiempat, maka dibutuhkan empat titik saja. maka diantara begin dan end harus ada empat titik agar objek ini muncul. Contohnya bisa dilihat ketika menggunakan source code dibawah :
Quad adalah segiempat, maka dibutuhkan empat titik saja. maka diantara begin dan end harus ada empat titik agar objek ini muncul. Contohnya bisa dilihat ketika menggunakan source code dibawah :
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_QUADS);
glColor3f(0.7f,0.7f,0.0f);
glVertex3f(-0.7f,0.7f,0.0f);
glVertex3f(0.7f,0.7f,0.0f);
glVertex3f(0.7f,0.0f,0.0f);
glVertex3f(0.0f,0.3f,0.0f);
glEnd();
glFlush();
}
9. Quad Trip
Berbeda dengan Quads yang mengabaikan titik kelima dan keenam, Quad Trip akan membuat bidang baru dengan menggunakan dua titik sebelumnya. Jika hanya memasukkan lima titik, maka bidang kedua tidak akan muncul. Pada glBegin diisikan GL_QUAD_STRIP.
Berbeda dengan Quads yang mengabaikan titik kelima dan keenam, Quad Trip akan membuat bidang baru dengan menggunakan dua titik sebelumnya. Jika hanya memasukkan lima titik, maka bidang kedua tidak akan muncul. Pada glBegin diisikan GL_QUAD_STRIP.
void display(void)Nah itu dia beberapa fungsi dasar untuk membuat suatu objek, masih banyak fungsi yang lain seperty polygon,dll. Hal itu bisa dijelajahi dengan membuka situs openGL. Source code diatas hanya sebagai contoh, nilai yang terdapat pada glVertex dan glColor bisa diganti untuk mendapatkan hasil yang berbeda. Semoga bermanfaat, terimakasih.
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_QUAD_STRIP);
glColor3f(1.0f,0.0f,0.0f);
glVertex3f(0.0f,0.0f,0.0f);
glVertex3f(-0.7f,0.7f,0.0f);
glVertex3f(0.7f,0.7f,0.0f);
glVertex3f(0.0f,0.8f,0.0f);
glColor3f(1.0f,1.0f,0.0f);
glVertex3f(0.8f,0.0f,0.0f);
glVertex3f(0.5f,0.0f,0.0f);
glEnd();
glFlush();
}
Tidak ada komentar:
Posting Komentar