Slide yani - Konsep 3D dan Open GL
Download
Report
Transcript Slide yani - Konsep 3D dan Open GL
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.
Bentuk Geometrik OpenGL
Format command OpenGL
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,
glVertex3f( 1.0f, 1.0f,
glVertex3f( 1.0f,-1.0f,
glVertex3f(-1.0f,-1.0f,
glEnd();
0.0f);
0.0f);
0.0f);
0.0f);
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,
glVertex3f( 1.0f, 1.0f,
glVertex3f( 1.0f,-1.0f,
glVertex3f(-1.0f,-1.0f,
glEnd();
0.0f);
0.0f);
0.0f);
0.0f);
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