Download - Serba Serbi Grafika Game

Transcript

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 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

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!