260 likes | 589 Views
Grafik 3D. 3D Pada Grafik Komputer. 3D pada layar yang 2D ? Perspektif + 2D = 3D ( terlihat 3D ) Data diolah secara 3D. namun ditampilkan dengan proyeksi perspektif menjadi 2D. Sistem Koordinat 3D. terdiri dari 3 sumbu x,y,z. OpenGL. Apakah OpenGL ?.
E N D
3D Pada Grafik Komputer • 3D pada layar yang 2D ? • Perspektif + 2D = 3D ( terlihat 3D ) • Data diolah secara 3D. namun ditampilkan dengan proyeksi perspektif menjadi 2D.
Sistem Koordinat 3D • terdiri dari 3 sumbu x,y,z.
Apakah OpenGL ? • OpenGL adalah Interface (library)untuk software dalam berinteraksi dengan graphic hardware.
Tujuan OpenGL • Powerfull. • Multiplatform. • Wide hardware support. • Low level graphic.
Sejarah OpenGL • Dikembangkan pertama oleh Silicon Graphic Inc. dengan nama IRIS GL. • Diperkenalkan pertama ke publik dengan nama OpenGL, 1 Juli 1992, dengan versi 1.1
Siapakah Yang Bertanggung Jawab Terhadap OpenGL ? • ARB (Architectural Review Board) • Terdiri dari Kalangan industri, organisasi, dan perorangan yang berkepentingan terhadap OpenGL, seperti NVIDIA, ATi, Intel, HP, IBM, Sun, 3DLabs, dll.
Contoh Aplikasi yang Menggunakan OpenGL ? • Hampir semua game 2D/3D modern mendukung OpenGL. • 3DMax, Anim8or, Maya, Blender, dan banyak Aplikasi editing dan animasi 3D.
- glfw - • Library tambahan yang menjambatani antara platform (OS) dengan OpenGL. • Bukan bagian resmi dari OpenGL! • Multiplatform.
OpenGL sebagai Mesin State • OpenGL mengikuti arsitektur mesin state. • Dilakukan dengan menyalakan (enable) dan mematikan (disable) sesuatu fitur yang diinginkan, misal lighting, texture, dll.
Kemampuan OpenGL • Geometrik : point, line, polygon. • Citra/Image : bitmaps, Texture mapping • Rendering kondisi : Warna, Lighting, Material.
Menggambar Bentuk Geometrik • dimulai dengan glBegin(nama bentuk); • diakhiri dengan glEnd(); • Contoh : glBegin( GL_LINES ); glVertex3f(-1.0f, 1.0f, 1.0f ); glVertex3f( 1.0f,-1.0f, 1.0f ); glEnd();
Warna • glColor3f( r, g, b ); • glColor3ub( r, g, b ); Contoh : glBegin( GL_LINES ); glColor3f( 1.0, 0.0, 0.0 ); glVertex3f(-1.0f, 1.0f, 1.0f ); glColor3f( 0.0, 1.0, 0.0 ); glVertex3f( 1.0f,-1.0f, 1.0f ); glEnd();
Perpindahan (Translasi) • glTranslatef( x, y, z ) • glTranslated( x, y, z ) Contoh : glTranslatef( 1.0f, 0.0f, 0.0f ); glBegin( GL_LINES ); glVertex3f(-1.0f, 1.0f, 1.0f ); glVertex3f( 1.0f,-1.0f, 1.0f ); glEnd();
Penskalaan (Scale) • glScalef( xf, yf, zf ); Contoh : glScalef( 2.0f, 2.0f, 0.0f ); glBegin(GL_QUADS); glVertex3f(-1.0f, 1.0f, 0.0f); glVertex3f( 1.0f, 1.0f, 0.0f); glVertex3f( 1.0f,-1.0f, 0.0f); glVertex3f(-1.0f,-1.0f, 0.0f); glEnd();
Rotasi (Rotate) • glRotatef( sudut, sx, sy, sz ); Contoh : glRotatef( 45.0f, 0.0f, 0.0f, 1.0f ); glBegin(GL_QUADS); glVertex3f(-1.0f, 1.0f, 0.0f); glVertex3f( 1.0f, 1.0f, 0.0f); glVertex3f( 1.0f,-1.0f, 0.0f); glVertex3f(-1.0f,-1.0f, 0.0f); glEnd();
CONTOH PROGRAM Membuat Garis pada OpenGL int main() { mulaimodegrafik("..\\BGI\\"); buatKotak(600,400,30,100,10); buatKotak(100,330,30,160,10); buatKotak(70,300,30,190,10); buatKotak(600,160,530,330,10); buatKotak(600,190,560,300,10); buatGaris(312,100,312,400,10); buatLingkaran(310,250,60,20); buatLingkaran(312,250,5,20); buatGaris(370,80,600,80,35); buatGaris(30,80,250,80,30); getch(); tutupmodegrafik(); return 0; }
CONTOH PROGRAM Membuat Lingkaran, Garis pada OpenGL int main() { mulaimodegrafik("..\\BGI\\"); buatKotak(420,400,200,150,30); buatKotak(415,395,205,155,20); buatKotak(370,250,255,150,30); buatKotak(300,240,270,160,10); buatLingkaran(312,300,30,15); buatLingkaran(312,300,28,15); getch(); tutupmodegrafik(); return 0; }
PROGRAM TRANSFORMASI 2D • Membuat Persegi (GL_QUADS) • Menggunakan scala, rotate, translasi
PROGRAM TRANSFORMASI 3D • Membuat Kubus dengan 6buah sisi (GL_QUADS) • Menggunakan scala, rotasi, translasi
BERSAMBUNG Thank you