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