grafik komputer

Upload: juqhotahe

Post on 09-Jul-2015

2.891 views

Category:

Documents


9 download

TRANSCRIPT

Grafik Komputer(Menggambar dengan OpenGL)Persiapan menggunakan open GL:

Install software Visual studio, pinjem ke siapa aja. Download file-file yang dibutuhkan oleh openGL seperti : glut32.dll, glut32.lib, dan glut.h Cari tutorial yang bagus, gak bikin bingung.

Persiapan File-file openGL:

Pastikan software visual studio telah terinstall dengan selamat. Kopikan file-file berikut ini:

1. glut32.dll simpan di c:\windows\system32 2. glut32.lib simpan di C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Lib 3. glut.h simpan di C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\gl Tahap penulisan coding openGL:

Masuk ke software visual studio. amati baik-baik apakah benar anda masuk ke visual studio. jangan-jangan anda malah membuka software visiohehe

Buat project baru dan file baru. saya asumsikan anda telah familiar menggunakan software visual studio. jika belum, silahkan cari tutorialnya (cape dech).

Jika sudah, maka tulislah program di bawah ini (atau copy paste bagi orang-orang yang malaseh, kreatif maksudnya). jangan lupa baca doa, nanti programnya gak jalan, saya yang di marahin..hehe

CONTOH PROGRAM : http://www.4shared.com/file/137625989/ad25c452/contoh_open_GL.html

Listing Program :#include void gambargw( void) { //Disini tempat untuk menggambar glBegin(GL_QUADS); //menggambar segi empat glColor3f(1,0,0);glVertex3f(-90,90,0); //titik kiri atas glColor3f(0,1,0);glVertex3f(-90,0,0); //titik kiri bawah glColor3f(0,0,1);glVertex3f(80,0,0); //titik kanan bawah glColor3f(1,0,1);glVertex3f(80,90,0); //titik kanan atas glEnd(); glBegin(GL_TRIANGLES); //menggambar segitiga glColor3f(1,0,0);glVertex3f(100,0,0); //titik kiri glColor3f(0,1,0);glVertex3f(160,120,0); //titik atas glColor3f(0,0,1);glVertex3f(220,0,0); //titik kanan glEnd(); glFlush(); //untuk memastikan bahwa perintah gambar di eksekusi } void display( void) { glClear(GL_COLOR_BUFFER_BIT); //membersihkan semua pixel gambargw();//memanggil fungsi gambargw() glutSwapBuffers(); } int main( int argc, char ** argv){ //untuk inisialisasi GLUT dengan parameter baris perintah glutInit(&argc, argv); //seting display mode

glutInitDisplayMode (GLUT_DOUBLE|GLUT_RGB); //seting posisi window glutInitWindowPosition( 300,100); //seting ukuran window glutInitWindowSize(640,480); //membuat window dengan caption di atasnya glutCreateWindow (Agus Sumarna 3IA10); //seting warna background glClearColor( 0.0, 0.0, 0.0, 0.0); //inisialisasi nilai pengamatan gluOrtho2D(- 320., 320., -240.0,240.0); glutIdleFunc(display); //memanggil fungsi display glutDisplayFunc(display); //Memasukan GLUT event loop glutMainLoop(); return 0; }

Output Program :

Keterangan Program :

#include Pemrograman grafis menggunakan OpenGL-GLUT membutuhkan header glut.h yang ada di folder : C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\gl void userdraw(void) { // Disini tempat untuk menggambar } Fungsi user draw adalah suatu fungsi untuk membuat kode program untuk menghasilkan suatu gambar. Tips-tips : 1. Kalo ternyata waktu di gambar Cuma ada gambar titik kecil, itu tandanya glVertex3f(0,1,0); harus di ubah jadiglVertex3f(0,3,0);

misalnya. contoh ketika anda akan membuat

gambar segitiga dengan coding sebagai berikut :glBegin(GL_TRIANGLES); glVertex3f(-1,0,0); glVertex3f(0,1,0); glVertex3f(1,0,0); glEnd; glFlush();

ingsyaalloh gambarnya Cuma titik kecil, maka anda harus menggantinya menjadi :glBegin(GL_TRIANGLES); glVertex3f(-30,0,0); glVertex3f(0,30,0); glVertex3f(30,0,0); glEnd;

glFlush();

1. Dalam membuat sebuah gambar di OpenGL, anda harus pandai berhalusinasi, maksudnya anda harus bisa membayangkan sebuah garis kartesian yang mana terdapat sumbu x,y (untuk 2 Dimensi) dan x,y,z (untuk 3 Dimensi) Depok, 11-10-08-sat Agus Sumarna

Beginning OPEN GL

Pemrograman 3D adalah hal yang menarik, karena impian untuk bikin game, interactive system, sampai interactive animation bermula di 3D, tapi startnya .. sullllliiiiiit banget. Selain karena veteran2 3D banyak bermain di bidang OPEN GL, dan C++, C#.... sangat jarang sekali. Berikut saya akan coba share mengenai how to start programming Open GL dari yang sangat sederhana sekali. Persiapan 1 : dll tambahan yang dibutuhkan CsGL ( C# Open GL ) bisa di download di http://csgl.sourceforge.net Setelah di download, dan di extract, jangan lupa untuk diinstall ( yang sebenarnya hanya memindahkan file csgl-native.dll ke windows system saja ) tapi ini adalah langkah yang penting, karena csgl-native.dll ini akan di reference oleh csgl.dll Persiapan 2 : siap mental :P Waktu pertama ngeliat codenya saya sempat stress, selain ga biasa maen di dunia 3D, kodenya itu struktural banget, ga ada OO nya.. ya jangan stress dulu la, kedepannya saya akan coba membimbing langkah demi langkah untuk membuat aplikasi open GL Beginning OpenGL Buat Project Windows Forms Application baru, lalu tambahkan reference ke CsGl.dll Setelah itu, bukalah Form1.cs, tambahkan using CsGl.OpenGL; kemudian buatlah kelas baru yang akan mengimplementasikan openGL, misalkan nama kelasnya MyGLView.cs, tambahkan script berikut didalamnya class MyGLView : OpenGLControl { /// /// Di Method ini lah kita akan menggambar sesuatu /// public override void glDraw() { //Bersihkan dulu screen GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); } } Lalu tambahkan MyGLView ke dalam Form1.cs dengan cara drag & drop dari toolbox, yup class yang baru saja dibuat akan diperlakukan layaknya usercontrol. Dan coba dijalankan. Ya memang masih kosong, sabar ya

Menggambar segitiga sederhana Masih menggunakan solution yang tadi, kita akan mencoba untuk menggambar segitiga sederhana ( masih 2D, 3Dnya belum kelihatan ) Nah coba diganti lagi source code untuk method glDraw() dengan yang ini public override void glDraw() { //Bersihkan dulu screen GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); GL.glLoadIdentity(); //Menghitung ratio layar sehingga gambar dapat ditampilkan dengan tepat double aspect_ratio = (double)this.Width / (double)this.Height; GL.glMatrixMode(GL.GL_PROJECTION); // Select The Projection Matrix GL.glLoadIdentity(); // Reset The Projection Matrix GL.gluPerspective(45.0f, aspect_ratio, 0.1f, 100.0f); // Pindahkan kursor ke titik -1.5f x dan -6.0fz GL.glTranslatef(-1.5f, 0.0f, -6.0f); // mulai menggambar segitiga GL.glBegin(GL.GL_TRIANGLES); GL.glVertex3f(0.0f, 1.0f, 0.0f); GL.glVertex3f(-1.0f, -1.0f, 0.0f); GL.glVertex3f(1.0f, -1.0f, 0.0f); GL.glEnd(); } Ya mungkin ada banyak yang tidak anda mengerti mengenai syntax2 nya, sama saya juga tidak banyak mengerti. Ini juga pertama kali saya menyentuh dunia 3D. Tapi tenang saja, akan ada tutorial berikutnya Btw tolong jangan dipamerin dulu ke temen2, tunggu sampe bisa bikin minal animasi hehehe :p

Dasar-Dasar Menggambar dengan OpenGL dan Menggambar TitikSeptember 10, 2011 zacknov Leave a comment Go to comments

1 Vote Dasar-dasar menggambar dengan OpenGL mempunyai 10 buah bentuk geometris sederhana,biasa disebut 10 Geometris Primitif. Disebut primitif karena bentuk sederhana dan ditampilkan sangat cepat dan bisa dibentuk gambar yang lebih kompleks lagi dengan penggabungan gambar geometris primitif tersebut. 10 Geometris tersebut adalah Points (Point), Lines (Garis), Triangles (Segitiga), Triangle Strip (Segitiga Jalur), Quad Strip (Quad Jalur), Line Strip (Garis Jalur), Line Loop (Garis Looping), Quads (Quad), Polygon (Poligon), and Triangle Fan (Segitiga Fan).

Untuk menggambar geometris diatas, openGL menggunakan fungsi, yaitu :

GL_POINTS GL_LINES GL_TRIANGLES GL_TRIANGLE_STRIP GL_QUAD_STRIP GL_LINE_STRIP GL_LINE_LOOP GL_QUADS GL_POLYGON GL_TRIANGLE_FAN

Mengambar Titik

Menggambar titik menggunakan perintah GL_POINTS dengan glVertex3f(x, y, z), dimana kordinat x sumbu horizontal, y sumbu vertikal dan kordinat z kearah kita. Koordinat dimulai dari kiri bawah, seperti gambar di bawah ini.

Untuk mulai menggambar titik kita menggunakan perintah GL_POINTS seperti dibawah ini glBegin(GL_POINTS); glVertex3f(0.2, 0.2, 0.0); glVertex3f(0.8, 0.2, 0.0); glVertex3f(0.2, 0.5, 0.0); glVertex3f(0.8, 0.5, 0.0); glVertex3f(0.2, 0.8, 0.0); glVertex3f(0.8, 0.8, 0.0); glEnd(); Sintak program menggambarkan grafik dalam sumbu x,y dan z adalah

Atau dalam bentuk lain yaitu

Untuk Kode program lengkap dalam Editor CodeBlocks adalah

#include

void Draw() { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 1.0, 1.0); glBegin(GL_POINTS); glVertex3f(0.2, 0.2, 0.0); glVertex3f(0.8, 0.2, 0.0); glVertex3f(0.2, 0.5, 0.0); glVertex3f(0.8, 0.5, 0.0);

glVertex3f(0.2, 0.8, 0.0); glVertex3f(0.8, 0.8, 0.0); glEnd(); glFlush(); }

void Initialize() { glClearColor(0.0, 0.0, 0.0, 0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0); }

int main(int iArgc, char** cppArgv) { glutInit(&iArgc, cppArgv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(250, 250); glutInitWindowPosition(200, 200); glutCreateWindow(Point); Initialize(); glutDisplayFunc(Draw); glutMainLoop(); return 0; }

Jalankan Program tersebut di CodeBlocks hasilnya seperti gambar di bawah ini

Gambar ini terdiri 6 buah titik berwarna putih.

Menampilkan Garis Strip Untuk menampilkan Garis Strip, OpenGL menggunakan perintah GL_LINE_STRIP. Garis Strip adalah membuat garis-garis dengan menghubungkan ujung garis sebagai titik pertama untuk garis selanjutnya.

Perintah dasar Garis Strip adalah : glBegin(GL_LINE_STRIP); glVertex3f(0.2, 0.2, 0.0); glVertex3f(0.8, 0.2, 0.0); glVertex3f(0.2, 0.5, 0.0); glVertex3f(0.8, 0.5, 0.0); glVertex3f(0.2, 0.8, 0.0); glVertex3f(0.8, 0.8, 0.0); glEnd(); Gambar dari perintah Garis Strip diatas adalah:

Program lengkap Garis Strip dalam main program c adalah :

#include void Draw() { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 1.0, 1.0); glBegin(GL_LINE_STRIP); glVertex3f(0.2, 0.2, 0.0); glVertex3f(0.8, 0.2, 0.0); glVertex3f(0.2, 0.5, 0.0); glVertex3f(0.8, 0.5, 0.0); glVertex3f(0.2, 0.8, 0.0); glVertex3f(0.8, 0.8, 0.0); glEnd(); glFlush(); } void Initialize() { glClearColor(0.0, 0.0, 0.0, 0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0); } int main(int iArgc, char** cppArgv) { glutInit(&iArgc, cppArgv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(250, 250); glutInitWindowPosition(200, 200); glutCreateWindow(Line Strip); Initialize(); glutDisplayFunc(Draw); glutMainLoop(); return 0; } Program di atas, setelah di kompile, hasilnya seperti gambar dibawah:

Menampilkan Garis Loop Garis Loop adalah menghubungkan garis pertama dengan garis selanjutnya dan garis terakhir terhubung dengan garis pertama. Untuk menampilkan Garis Loop, OpenGL menggunakan perintah GL_LINE_LOOP.

Perintah dasar Garis Loop adalah : glBegin(GL_LINE_LOOP); glVertex3f(0.2, 0.2, 0.0); glVertex3f(0.8, 0.2, 0.0); glVertex3f(0.2, 0.5, 0.0); glVertex3f(0.8, 0.5, 0.0); glVertex3f(0.2, 0.8, 0.0); glVertex3f(0.8, 0.8, 0.0); glEnd(); Dari program dasar Garis Loop itu akan membentuk gambar seperti :

Program lengkap untuk membuat Garis Loop dalam main program c adalah : #include void Draw() { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 1.0, 1.0); glBegin(GL_LINE_LOOP); glVertex3f(0.2, 0.2, 0.0); glVertex3f(0.8, 0.2, 0.0); glVertex3f(0.2, 0.5, 0.0); glVertex3f(0.8, 0.5, 0.0); glVertex3f(0.2, 0.8, 0.0); glVertex3f(0.8, 0.8, 0.0); glEnd(); glFlush(); } void Initialize() { glClearColor(0.0, 0.0, 0.0, 0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0); } int main(int iArgc, char** cppArgv) { glutInit(&iArgc, cppArgv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(250, 250); glutInitWindowPosition(200, 200); glutCreateWindow(Lne Loop); Initialize(); glutDisplayFunc(Draw); glutMainLoop();

return 0; } Hasil kompile program lengkap diatas adalah :

Menampilkan Quad,Polygon dan Triangle Fan dengan OpenGLSeptember 12, 2011 zacknov Leave a comment Go to comments

1 Vote Menampilkan Quad Gambar Quad adalah bentuk segiempat dengan vertex yang bebas. Bebas disini artinya mempunyai segi empat buah yang bebas. Untuk menampilkan Quad, OpenGL mengunakan perintah GL_QUADS.

Perintah sederhana menampilkan SQUAD adalah :

glBegin(GL_QUADS); glVertex3f(0.2, 0.2, 0.0); glVertex3f(0.8, 0.2, 0.0); glVertex3f(0.6, 0.4, 0.0); glVertex3f(0.4, 0.4, 0.0); glVertex3f(0.4, 0.6, 0.0); glVertex3f(0.6, 0.6, 0.0); glVertex3f(0.8, 0.8, 0.0); glVertex3f(0.2, 0.8, 0.0); glEnd();

Gambar yang dihasilkan dari peritah diatas adalah :

Perintah lengkap menampilkan SQUAD dalam main program bahasa C adalah :

#include

void Draw() { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 1.0, 1.0); glBegin(GL_QUADS); glVertex3f(0.2, 0.2, 0.0); glVertex3f(0.8, 0.2, 0.0); glVertex3f(0.6, 0.4, 0.0); glVertex3f(0.4, 0.4, 0.0); glVertex3f(0.4, 0.6, 0.0); glVertex3f(0.6, 0.6, 0.0); glVertex3f(0.8, 0.8, 0.0); glVertex3f(0.2, 0.8, 0.0); glEnd(); glFlush(); }

void Initialize() { glClearColor(0.0, 0.0, 0.0, 0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0); }

int main(int iArgc, char** cppArgv) { glutInit(&iArgc, cppArgv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(250, 250); glutInitWindowPosition(200, 200); glutCreateWindow(Quads); Initialize(); glutDisplayFunc(Draw); glutMainLoop(); return 0; }

Hasil setelah di kompile dari program SQUAD diatas adalah :

Menampilkan Polygon

Polygon atau segibanyak dapat dibentuk dengan menggunakan perintah GL_POLYGON di OpenGL.

Perintah sederhana menampilkan POLYGON adalah:

glBegin(GL_POLYGON); glVertex3f(0.2, 0.2, 0.0); glVertex3f(0.6, 0.1, 0.0); glVertex3f(0.8, 0.3, 0.0); glVertex3f(0.7, 0.6, 0.0); glVertex3f(0.4, 0.8, 0.0); glEnd();

Gambar yang hasil dari perintah diatas adalah :

Perintah lengkap menampilkan POLYGON dalam main program bahasa C adalah : #include void Draw() { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 1.0, 1.0); glBegin(GL_POLYGON); glVertex3f(0.2, 0.2, 0.0); glVertex3f(0.6, 0.1, 0.0); glVertex3f(0.8, 0.3, 0.0); glVertex3f(0.7, 0.6, 0.0); glVertex3f(0.4, 0.8, 0.0); glEnd();

glFlush(); } void Initialize() { glClearColor(0.0, 0.0, 0.0, 0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0); } int main(int iArgc, char** cppArgv) { glutInit(&iArgc, cppArgv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(250, 250); glutInitWindowPosition(200, 200); glutCreateWindow(Polygon); Initialize(); glutDisplayFunc(Draw); glutMainLoop(); return 0; } Hasil setelah di kompile dari program POLYGON diatas adalah :

Menampilkan Triangle Fan

Triangle Fan adalah menghubungkan beberapa segitiga ke titik pusat. Untuk menampilkan Triangle fan, OpenGL menggunakan perintah GL_TRIANGLE_FAN.

Perintah dasar menampilkan Triangle Fan adalah :

glBegin(GL_TRIANGLE_FAN); glVertex3f(0.2, 0.2, 0.0); glVertex3f(0.6, 0.1, 0.0); glVertex3f(0.8, 0.3, 0.0); glVertex3f(0.7, 0.6, 0.0); glVertex3f(0.4, 0.8, 0.0); glEnd();

Gambar dari perintah dasar diatas adalah :

Program lengkap Triangle fan dalam fungsi main bahasa C adalah :

#include

void Draw() { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 1.0, 1.0); glBegin(GL_TRIANGLE_FAN); glVertex3f(0.2, 0.2, 0.0); glVertex3f(0.6, 0.1, 0.0); glVertex3f(0.8, 0.3, 0.0); glVertex3f(0.7, 0.6, 0.0); glVertex3f(0.4, 0.8, 0.0); glEnd(); glFlush(); }

void Initialize() { glClearColor(0.0, 0.0, 0.0, 0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0); }

int main(int iArgc, char** cppArgv) { glutInit(&iArgc, cppArgv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(250, 250); glutInitWindowPosition(200, 200); glutCreateWindow(Triangle Fan); Initialize(); glutDisplayFunc(Draw); glutMainLoop(); return 0; }

Setelah di kompile, maka hasilnya adalah :

Open GL OpenGL adalah suatu spefikasi grafik yang low-level yang menyediakan fungsi untuk pembuatan grafik primitif termasuk titik, garis, dan lingkaran. OpenGL digunakan untuk mendefinisikan suatu objek, baik objek 2 dimensi maupun objek 3 dimensi. OpenGL juga merupakan suatu antarmuka pemrograman aplikasi (application programming interface (API) yang tidak tergantung pada piranti dan platform yang digunakan, sehingga OpenGL dapat berjalan pada sistem operasi Windows, UNIX dan sistem operasi lainnya. OpenGL pada awalnya didesain untuk digunakan pada bahasa pemrograman C/C++, namun dalam perkembangannya OpenGL dapat juga digunakan dalam bahasa pemrograman yang lain seperti Java, Tcl, Ada, Visual Basic, Delphi, maupun Fortran. Namun OpenGL di-package secara berbeda-beda sesuai dengan bahasa pemrograman yang digunakan. Oleh karena itu, package OpenGL tersebut dapat di-download pada situs http://www.opengl.org sesuai dengan bahasa pemrograman yang akan digunakan. Selain OpenGL ada juga tools/library grafik yang dapat dipergunakan yaitu DirectX. Namun tools ini hanya dapat dipergunakan pada Microsoft Windows. Pada semester 6 (enam) saya mendapat praktikum grafik computer dan mendapat materi tentang Open GL dan mencoba membuat objek seperti kubus, segitiga, limas. Dengan pengalaman itu saya akan mencoba membuat objek kubus beserta limas terbalik yang berputar (melakukan rotasi), yang mana merupakan tugas dari pemrograman multimedia supaya dapat membuat suatu objek menggunakan Open Gl. Sebelumnya saya akan menginstal terlebih dahulu software pelles c nya. Berkiut ini adalah cara-cara menginstal pelles c : Cara menginstal Pelles c :

Untuk mengetahui bagaimana cara menginstal nya, buka install.txt. Di dalam file ini terdapat cara menginstal pelles c yaitu : 1. Install PellesC3.exe, seperti install program windows biasa, option biarkan seperti aslinya (default), install folder ke "E:\Praktikan\Praktikum"( khusus di LAB ). 2. Copy "glfw.h" ke "\include\win\gl\" 3. Copy "glfw.lib" ke "\lib\" 4. Copy "LabTI OpenGL.dll" ke "\bin\wizards\"

Setelah melakukan langkah-langkah diatas, maka pelles c telah terinstal, muncul folder baru untuk pelles c yang telah terinstal dengan nama pelles c. Dan software ini pun siap untuk digunakan.

Kemudian saya akan mencoba membuat 2 buah onjek yaitu kubus dan liman terbalik, yang mana kedua objek ini nanti nya akan melakukan rotasi. Pertama-tama kita buka pelles c nya, pilih file->new->project->LabTI OpenGL Wizard (kalau belum ada option ini, berarti ada yang salah waktu install). Maka akan mucul program Open Gl seperti berikut ini. #include #include #include #include void mulaiOpenGL(void); int main(void) { // // mRunning = TRUE, aplikasi masih berjalan // mRunning = FALSE, ??? :p GLuint mRunning = GL_TRUE; // // inisialisasi GLFW if( glfwInit() == GL_FALSE ) {

MessageBox( NULL, "ERROR :: gagal menginisialisasi GLFW", "Error!", MB_OK); return(0); } // // buat sebuah window yang akan digunakan untuk menggambar. if( glfwOpenWindow( 640, 480, 0, 0, 0, 0, 24, 0, GLFW_WINDOW ) == GL_FALSE ) { MessageBox( NULL, "ERROR :: gagal membuat window", "Error!", MB_OK ); glfwTerminate(); return(0); } // // Set judul yang ada di window dan Swap interval. glfwSetWindowTitle( "Praktikum Grafik Komputer LabTI" ); glfwSwapInterval( 1 ); // // mulai OpenGL (melakukan setting awal OpenGL) mulaiOpenGL(); int r; // // mulai looping utama program while( mRunning ) { // // bersihkan layar dan depth buffer glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); glLoadIdentity(); // // lakukan penggambaran di sini //-----------------------------------------------------------------------------------//kubus atasnya limas terbalik gluLookAt (10,10,10,0, 0,0,0,1,0) ; glRotatef(r,0,0,1); glBegin (GL_QUADS); glColor3f (0,1,0); glVertex3f (0,5,0); glVertex3f (4,5,0); glVertex3f (4,5,4); glVertex3f (0,5,4); glEnd(); glBegin (GL_TRIANGLES) ; glColor3f (1,0,0); glVertex3f (0,5,0); glVertex3f (4,5,0);

glVertex3f (2,0,2); glColor3f (1,0,1); glVertex3f (4,5,0); glVertex3f (4,5,4); glVertex3f (2,0,2); glColor3f (1,1,0); glVertex3f (4,5,4); glVertex3f (0,5,4); glVertex3f (2,0,2); glColor3f (1,1,1); glVertex3f (0,5,4); glVertex3f (0,5,0); glVertex3f (2,0,2); glEnd (); glBegin (GL_QUADS); glColor3f (1,0,1); glVertex3f (0,0,0); glVertex3f (4,0,0); glVertex3f (4,0,4); glVertex3f (0,0,4);

glColor3f (0,0,1); glVertex3f (0,0,0); glVertex3f (4,0,0); glVertex3f (4,-4,0); glVertex3f (0,-4,0); glColor3f (0,1,1); glVertex3f (4,0,0); glVertex3f (4,0,4); glVertex3f (4,-4,4); glVertex3f (4,-4,0); glColor3f (1,0,0); glVertex3f (4,0,4); glVertex3f (0,0,4); glVertex3f (0,-4,4); glVertex3f (4,-4,4); glColor3f (1,1,0); glVertex3f (0,0,4);

glVertex3f (0,0,0); glVertex3f (0,-4,0); glVertex3f (0,-4,4); glColor3f (1,1,1); glVertex3f (0,-4,0); glVertex3f (4,-4,0); glVertex3f (4,-4,4); glVertex3f (0,-4,4);

glEnd (); r++; //-----------------------------------------------------------------------------------// // tampilkan ke layar (swap double buffer) glfwSwapBuffers(); // // check input , apakah tombol esc ditekan atau tombol "close" diclick mRunning = !glfwGetKey( GLFW_KEY_ESC ) && glfwGetWindowParam( GLFW_OPENED ); } glfwTerminate(); return(0); } void mulaiOpenGL(void) { // // Set viewport ke resolusi 640x480 viewport bisa diibaratkan // layar monitor anda glViewport( 0, 0, 640, 480 ); // // Set mode OpenGL ke mode pryeksi (Projection) dan set proyeksi // menggunakan proyeksi perspective, dengan sudut pandang (Field Of // View) 60 derajat glMatrixMode( GL_PROJECTION ); glLoadIdentity(); gluPerspective( 60.0f, 640.0f/480.0f, 0.1f, 1000.0f ); glMatrixMode( GL_MODELVIEW ); glLoadIdentity(); // // Set mode gradasi warna halus (Smooth)

glShadeModel( GL_SMOOTH ); // // warna yang digunakan untuk membersihkan layar glClearColor( 0.0f, 0.0f, 0.0f, 0.0f ); // // nilai untuk membersihkan depth buffer. glClearDepth( 1.0f ); // // Depth test digunakan untuk menghindari polygon yang // tumpang tindih. glEnable( GL_DEPTH_TEST ); glDepthFunc( GL_LEQUAL ); // // beritahu OpenGL untuk menggunakan perhitungan perspective // yang terbaik (perhitungan ini tidak bisa selalu 100% akurat) glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST ); }

Untuk membuat objek ini saya hanya memasukkan bagian program yang dimulai dari // lakukan penggambaran di sini hingga glEnd (); r++; . Karena program yang lainnya telah tersedia, jadi saya hanya memasukkan titik-titik koordinat untuk membuat objek kubus dan limas nya. Jika program di run, maka tampilan outputnya adalah seperti berikut : Dan output dari program diatas adalah :

Objek kubus dan limas ini berputar (melakukan rotasi) dengan sumbu z sebagai titik sumbu putarnya. Pada open gl ini saya menggunakan Pelles C, untuk membuat objek kubus dan limas segitiga terbalik kita cukup memasukkan titik-titik koordinat untuk membangun objek tersebut.

glRotatef(r,0,0,1); berfungsi sebagai titik putar (rotasinya) yaitu dengan sumbu putar Z

glBegin (GL_QUADS); glColor3f (0,1,0); glVertex3f (0,5,0); glVertex3f (4,5,0); glVertex3f (4,5,4); glVertex3f (0,5,4); glEnd(); bagian diatas untuk membuat sisi persegi dari limas segi empatnya. glBegin (GL_TRIANGLES) ; glColor3f (1,0,0); glVertex3f (0,5,0); glVertex3f (4,5,0); glVertex3f (2,0,2); glColor3f (1,0,1); glVertex3f (4,5,0); glVertex3f (4,5,4); glVertex3f (2,0,2); glColor3f (1,1,0); glVertex3f (4,5,4); glVertex3f (0,5,4); glVertex3f (2,0,2); glColor3f (1,1,1); glVertex3f (0,5,4); glVertex3f (0,5,0); glVertex3f (2,0,2); glEnd (); bagian diatas untuk membuat sisi segitiga dari limas segi empat (jumlah sisi segitiganya ada 4). Maka selesai membuat objek limas segiempatnya. Setelah itu kita membuat objek kubus nya. Berikut ini adalah potongan program nya : glBegin (GL_QUADS); glColor3f (1,0,1); glVertex3f (0,0,0); glVertex3f (4,0,0); glVertex3f (4,0,4); glVertex3f (0,0,4);

glColor3f (0,0,1); glVertex3f (0,0,0); glVertex3f (4,0,0); glVertex3f (4,-4,0); glVertex3f (0,-4,0); glColor3f (0,1,1); glVertex3f (4,0,0); glVertex3f (4,0,4); glVertex3f (4,-4,4); glVertex3f (4,-4,0); glColor3f (1,0,0); glVertex3f (4,0,4); glVertex3f (0,0,4); glVertex3f (0,-4,4); glVertex3f (4,-4,4); glColor3f (1,1,0); glVertex3f (0,0,4); glVertex3f (0,0,0); glVertex3f (0,-4,0); glVertex3f (0,-4,4); glColor3f (1,1,1); glVertex3f (0,-4,0); glVertex3f (4,-4,0); glVertex3f (4,-4,4); glVertex3f (0,-4,4); glEnd ();

Potongan program diatas adalah untuk membuat objek kubus nya. Maka objek limas terbalik dan kubusnya selesai dibuat. Dengan adanya glRotatef(r,0,0,1); maka objek limas dan kubus tersebut akan berputar sesuai sumbu nya yaitu dengan titik putar (sumbu) Z.