Serba Serbi Grafika Game
Mengenal OpenGL ●
●
●
Open Graphics Library is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL was developed by Silicon Graphics Inc. (SGI) in 1992[4] and is widely used in CAD, virtual reality, scientific visualization, information visualization, flight simulation, and video games. OpenGL is managed by the non-profit technology consortium Khronos Group.
Tujuan OpenGL ●
●
Hide complexities of interfacing with different 3D accelerators by presenting a single, uniform interface Hide differing capabilities of hardware platforms by requiring support of the full OpenGL feature set for all implementations (using software emulation if necessary)
Tujuan OpenGL ● ●
●
OpenGL ≠ Tool untuk membuat game OpenGL = Tool untuk mempermudah implementasi grafika 2D dan 3D dengan standar bahasa yang sama pada platform yang berbeda Logika dan alur game tetap dikendalikan melalui bahasa pemrograman yang dipilih.
Fungsi OpenGL ●
Rasterised points, lines and polygons as basic primitives
●
A transform and lighting pipeline
●
Z-buffering
●
Texture mapping
●
Alpha blending (transparency)
Fungsi OpenGL Z-buffering ●
●
Z-buffering is the management of image depth coordinates in threedimensional (3-D) graphics, usually done in hardware, sometimes in software. It is one solution to the visibility problem, which is the problem of deciding which elements of a rendered scene are visible, and which are hidden. Known also as depth-buffering
Fungsi OpenGL Texture mapping ●
●
Texture mapping is a method for adding detail, surface texture (a bitmap or raster image), or color to a computer-generated graphic or 3D model. Its application to 3D graphics was pioneered by Dr Edwin Catmull in his Ph.D. thesis of 1974. Digunakan juga untuk memperbaiki perspektif secara otomatis
Bentuk OpenGL ●
●
●
Berupa library pada bahasa pemrograman Berbasis pemrograman teks (console), dan tidak berhubungan dengan elemen window → agar dapat di “bind” dengan berbagai jenis bahasa pemrograman, baik yang teks maupun visual. Inti perintah OpenGL sebenarnya pendek, tetapi inisialisasi bisa panjang, tergantung bahasa pemrogaman masingmasing. glBegin( GL_POLYGON ); /* Begin issuing a polygon */ glColor3f( 0, 1, 0 ); /* Set the current color to green*/ glVertex3f( 1, 1, 0 ); /* Issue a vertex */ glVertex3f( 1, 1, 0 ); /* Issue a vertex */ glVertex3f( 1, 1, 0 ); /* Issue a vertex */ glVertex3f( 1, 1, 0 ); /* Issue a vertex */ glEnd(); /* Finish issuing the polygon */
Pustaka OpenGL ●
The Red Book OpenGL Programming Guide, 7th edition. ISBN 0-321-55262-8 A readable tutorial and reference book – this is a 'must have' book for OpenGL programmers.
●
The Blue Book OpenGL Reference manual, 4th edition. ISBN 0-321-17383-X Essentially a hard-copy printout of the man pages for OpenGL. Includes a poster-sized fold-out diagram showing the structure of an idealised OpenGL implementation.
●
OpenGL telah mencapai versi 4.2 per 8 Agustus 2011
Preview OpenGL
Mengenal Sprite ●
●
Sprite adalah objek dua dimensi yang berupa citra bitmap Karena bukan vektor, maka untuk mewujudkan gerakan citra, biasanya dengan manipulasi seluruh bitmap, atau dengan menempatkan serangkaian bitmap yang mewujudkan gerakan tersebut (animasi antara, seperti film kartun)
Objek Sprite
Objek Sprite
Dunia dalam Game: Sprite ●
●
●
●
●
Menggunakan prinsip objek mengambang diatas background seperti pada prinsip gambar vektor, tetapi tidak mengolah primitif grafika Dunia sprite pada umumnya terbagi dalam blok, baik secara 2D maupun 3D Model dunia ini adalah model tertua yang digunakan dalam game, dan masih digunakan sampai sekarang Pergerakan objek sprite adalah dari blok ke blok, meskipun dalam pergeseran antar blok tersebut dapat diselipkan animasi antara Deteksi tumbukan (collision detection) dilakukan berdasarkan posisi objek terhadap blok
Contoh Game Berbasis Sprite ●
Pacman
Contoh Game Berbasis Sprite ●
Super Mario Bros, Prince of Persia I & II
Contoh Game Berbasis Sprite ●
Ragnarok, Age of Empires I&II, Warcraft (old), Red Alert
Dunia dalam Game: Polygon ●
●
●
Sprite menggunakan memory seperti kalau kita membuka citra bitmap, artinya efisiensi memory dapat dihitung secara jelas, dan jika objek tidak banyak, maka memory irit Kekurangan sprite adalah: lokasi gerakan terbatas, sudut pandang terbatas Perkembangan hardware dan software masa kini semakin memungkinkan seandainya dunia digambar sebagian besar atau seluruhnya dari primitif grafika, terutama titik dan poligon.
Dunia dalam Game: Polygon ●
●
●
Objek dalam dunia “polygon” seluruhnya berupa model vektor, baik 2D atau 3D. Karena semua berupa objek vektor, maka manipulasi lebih leluasa: bentuk objek, gerak diri objek (gerak manusia, binatang, air), perpindahan objek, perspektif dunia (camera), pencahayaan, transparansi, pantulan, tekstur, dan lain-lain →semuanya menuju usaha membuat dunia menjadi “nyata”. Kekurangannya ialah dunia “polygon” memakan memory dan resource yang sangat besar, dan membutuhkan hardware acceleration.
Dunia dalam Game: Polygon ●
Deteksi tumbukan pada dunia “polygon” juga lebih rumit, karena tidak terbagi dalam blok-blok lokasi, tetapi murni menggunakan koordinat.
Contoh Game Berbasis “Polygon” ●
Counter-Strike, DotA
Contoh Game Berbasis “Polygon” ●
Need For Speed
Gerakan Dalam Game ●
●
Gerakan dapat berupa gerak diri objek atau transformasi objek (perpindahan, perbesaran/pengecilan, rotasi) Untuk perpindahan, dapat menggunakan lintasan yang biasanya berupa lintasan yang dibuat sendiri, atau mengikuti hukum fisika
●
Tidak susah kok untuk diterapkan
●
Lihat contoh!