Monday, March 14, 2011

Tugas Yudi Hartanto, kelas 3 IA 12, NPM 50408888


GRAFIK API


Merupakan grafik yang merepresentasi objek tiga dimensi dengan menggunakan data geometric (umumnya menggunakan kartesian) yang disimpan di dalam komputer untuk keperluan perhitungan tampilan serta rendering objek 2 dimensi. Grafik 3D menggunakan representasi 3 dimensi (kartesian) dalam bentuk ruang (x,y dan z) yang terdapat pada komputer dalam format data tertentu untuk keperluan rendering Graphic 2D atau untuk real-time viewing dalam game.



Grafik 3D sering mengacu pada 3D Models. Hal ini dikarenakan adanya persamaan dalam hal graphical data file. Namun kedua hal tersebut memiliki perbedaan, yaitu model 3D lebih mengacu pada representasi secara matematis dari suatu objek, sedangkan grafik 3D lebih mengacu pada representasi objek secara visual yang mendekati realitas.

Pada pencitraan 3D kita mengenal vector 3D dimana terdapat representasi arah pada sumbu x, y dan z.

Beberapa bagian dari objek 3D adalah :

1. Vertex : titik yang merupakan ujung (node) dari objek biasanya dihubungkan oleh sebuah garis.
2. Edge : garis yang menghubungkan antar vertex dari objek.
3. Face : merupakan kesatuan antara garis dan titik yang membentuk sebuah ruang 2D, biasanya berupa persegi (polygonal) dan segitiga (tris).
4. Node : pada games modeling tipe face yang biasanya sering digunakan adalah tris (segitiga).
5. Element : kesatuan sebuah objek secara utuh.


Metode dalam Grafik 3D

a) Ray Tracing : sebuah teknik untuk menghasilkan gambar dengan pencahayaan yang mendekati sebenarnya. Komputasi yang lebih lama dan memakan resources. Ray Tracing cocok pada gambar diam dan animasi (film) , dan lebih kurang cocok untuk real-time aplikasi seperti permainan komputer. Ray tracing mampu mensimulasikan berbagai efek optis, seperti refleksi dan pembiasan.

b) Lighting atau Illumination : teknik pencahayaan untuk penggunaan sumber cahaya buatan seperti lampu dan penerangan alami seperti skylight, matahari dll.

c) Shadow : efek dari pencahayaan, area di mana cahaya tidak dapat mencapainya karena terhalang oleh sebuah objek.

d) Difuse Color : warna sebenarnya dari objek.

e) Reflection : efek pencahayaan, pemantulan cahaya.

f) Refraction : efek pencahayaan, pembiasan cahaya ketika terkena objek.

g) Rendering : proses menghasilkan sebuah gambar dari sebuah model, dengan menggunakan program computer.

h) Shading : efek pencahayaan, bagaimana warna dan kecerahan dari permukaan bervariasi dengan pencahayaan.

i) Texture Mapping : memberikan kulit / pola (pattern) pada objek 3D, contohnya memberikan material dinding pada objek box.

j) Bump Mapping : memberikan kesan seakan-akan kasar pada objek 3D yang halus dengan menggunakan textures / map.

k) Normal Mapping : sebuah textures yang mendeskripsikan normal dari tiap pixel, membuat objek 3D memiliki ketinggian yang berbeda (lekukan, goresan dll) karena itu disebut juga Normal Map.

l) Transparency : kemampuan objek untuk ditembus cahaya.

m) Translucency : penyebaran cahaya ketika melalui benda padat.

n) Caustic : suatu bentuk pencahayaan tidak langsung. Pantulan cahaya dari sebuah benda yang shiny, atau memfokuskan cahaya melalui objek yang transparan, untuk menghasilkan cahaya warna cerah pada objek lain.



Dapat digambarkan sebagai sebuah "pintu" untuk mengakses informasi dari sebuah situs web, layanan atau perangkat lunak untuk membangun aplikasi. Dengan kata lain API adalah sebuah perangkat lunak untuk software interface, bukan user interface. Dengan API, aplikasi dapat saling berinteraksi satu sama lain tanpa sepengetahuan atau intervensi dari si pengguna.

Sebagai pengguna, kita hanya bisa melihat satu layar kerja saja pada sistem operasi yang sedang dijalankan, tetapi jika dilihat dari belakang layar, maka banyak aplikasi yang saling bekerja satu dengan aplikasi lainnya menggunakan API. Jenis integrasi ini disebut software, karena si pengguna tidak pernah memberi suatu perintah kepada perangkat lunak yang berkerja dari satu aplikasi ke aplikasi lainnya.

Pada API terdapat banyak perintah untuk menggantikan bahasa yang digunakan dalam system calls dengan bahasa yang lebih terstruktur dan mudah dimengerti oleh programmer. Perintah yang terdapat didalam API tersebut akan memanggil system calls sesuai dengan sistem operasinya. Tidak tertutup kemungkinan nama dari system calls sama dengan nama pada API.

Keuntungan memprogram dengan menggunakan API :
• Portabilitas. Programmer yang menggunakan API dapat menjalankan programnya dalam sistem operasi mana saja asalkan sudah ter - install API tersebut. Tetapi pada system call yang terdapat didalamnya akan selalu berbeda dengan sistem operasi yang satu dengan yang lainnya.
• User Friendlly. API menggunakan bahasa yang lebih terstruktur dan mudah dimengerti daripada bahasa system call. Hal ini sangat penting dalam hal editing dan pengembangan.


SCI
System call interface ini berfungsi sebagai penghubung antara API dan system call yang dimengerti oleh sistem operasi. System call interface ini akan menerjemahkan perintah dalam API dan kemudian akan memanggil system calls yang diperlukan. Untuk membuka suatu file tersebut user menggunakan program yang telah dibuat dengan menggunakan bantuan API, maka perintah dari user tersebut diterjemahkan dulu oleh program menjadi perintah open(). Perintah open() ini merupakan perintah dari API dan bukan perintah yang langsung dimengerti oleh kernel sistem operasi. Oleh karena itu, agar keinginan user dapat dimengerti oleh sistem operasi, maka perintah open() tadi diterjemahkan ke dalam bentuk system call oleh system call interface. Implementasi perintah open() tadi bisa bermacam-macam tergantung dari sistem operasi yang kita gunakan.

API yang umum digunakan untuk Game Developments

DirectX
DirectX adalah API yang dibuat oleh perusahaan Microsoft, API ini dikhususkan untuk pengembangan game. Tujuan dengan dibuatnya DirectX memberikan akses pada developer untuk berkomunikasi langsung dengan hardware, dimana tanpa DirectX API, developer (programmer) harus menggunakan API dari operating system (Windows) untuk berkomunikasi dengan hardware dan cara ini sangat lambat karena API pada operating system dibuat untuk tujuan umum (bukan hanya game saja) sehingga tidak teroptimisasi. Dengan adanya DirectX maka developer dapat langsung berkomunikasi dengan hardware tanpa harus melewati operating system.

DirectX terdiri dari beberapa sub-API yaitu :
1. Direct3D [API untuk pemograman visualiasi 3D]
2. DirectSound [API untuk pemograman audio 2D/3D]
3. DirectInput [API untuk pemograman input, seperti mouse, joystick, keyboard, etc]
4. DirectPlay [API untuk networking (multiplayer games)]
5. DirectShow [API untuk multimedia, seperti video, music, etc]

OpenGL
OpenGL adalah API yang memiliki peranan yang sama dengan Direct3D, perbedaannya adalah OpenGL merupakan API yang crossplatform, yang artinya dapat berjalan diberbagai operating system (tidak hanya Windows seperti DirectX) seperti Linux, MacOSX, Windows bahkan handheld device.

OpenAL
OpenAL adalah API yang memiliki peranan sama dengan DirectAudio dengan perbedaan seperti perbedaan OpenGL dan Direct3D, OpenAL merupakan API crossplatform dan opensource.


Engine

1. Graphics Engine
Graphics\3D Engine bertugas melakukan komputasi untuk melakukan visualisasi game, komputasi disini diantaranya melakukan transformasi (pergerakan) objek 3D, rendering object 3D (seperti : lighting, shadow, texturing), dan menggambar effect visual (seperti : particle, fog, motion blur, explosion) pada objek, proses ini dilakukan pada GPU (Graphics Processing Unit) apabila pada komputer ter-install 3D accelerated hardware. Sehingga Graphics engine pada umumnya berkomunikasi dengan hardware GPU dengan perantara 3D API (Direct3D / OpenGL).

Berikut adalah beberapa Graphics Engine opensource :
1. Ogre3D (via Direct3D/OpenGL)
2. Genesis3D (via Direct3D)
3. Irrlicht (via Direct3D/OpenGL)
4. Panda3D (via Direct3D/OpenGL)
5. Nebula Device (via Direct3D/OpenGL)
6. OpenSceneGraph (via OpenGL)

2. Audio Engine
Audio Engine bertugas untuk mengeluarkan suara pada game, termasuk processing audio itu sendiri, seperti effect pada environment, effect doppler, atau perubahan suara akibat dari posisi dan pergerakan sumber suara hingga proses komputasi perubahan suara apabila terdapat objek yang menghalangi suara tersebut.

Berikut adalah beberapa audio engine :
1. audiere
2. FMod
3. Audiality
4. Bass

3. Network Engine
Untuk game multiplayer atau online umumnya terdapat engine khusus yang melakukan processing networking yaitu komunikasi dan sinkronisasi antara player yang berada pada berbagai komputer yang terletak pada suatu network.

Berikut beberapa network engine :
1. torque network library
2. rakNet
3. Hawk network library
4. SDL network library
5. replica Net
6. quazal

4. Physics Engine
Agar pergerakan dan reaksi setiap objek dalam game terlihat nyata, maka game umumnya melakukan simulasi pergerakan dan reaksi objek berdasarkan hukum fisika seperti massa, torque, collision, friction, joint, gravity, momentum dll.

Berikut beberapa physics engine :
1. havok
2. tokamak
3. open dynamic engine
4. newton game dynamic
5. novodex

5.Game Engine
Game Engine adalah engine yang terdiri dari beberapa engine diatas (graphics, network, physics, dll).

Beberapa Game Engine yang ada :
1. truevision
2. torque game engine
3. reality engine
4. crystal space
5. KJAPI
6. unreal

No comments:

Post a Comment