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 three-dimensional (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 OpenGLTexture 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 masing-masing.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-8A 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-XEssentially 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
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)
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
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.
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!
Top Related