Embed
Email

113060186-graphic-3d-solid ... - Game Programming IT Telkom

Document Sample

Shared by: linzhengnd
Categories
Tags
Stats
views:
13
posted:
11/12/2011
language:
Malay
pages:
7
Nama : Randy Galawana

Nim : 113060186



Game Programming : Graphic 3D, Solid Modeling dan Camera Control



A. Introduction

Graphic 3D, Solid Modeling dan Camera Control merupakan beberapa fitur yang sering terdapat

pada 3D game. Beberapa technology tersebut mulai berkembang sejak munculnya technology

OpenGL, yang kemudian diikuti oleh Microsoft Direct3D. Perkembangan computer’s hardware juga

yang semakin baik dalam pemrosesan (baik perhitungannya) pengolahan graphic 3D, membuat

perkembangan fitur-fitur pada games 3D semakin cepat.



B. Graphic 3D

Graphic 3D adalah grafis dengan menggunakan representasi 3 dimensi (cartesian) dalam bentuk

ruang (x,y dan z) yang ada dalam computer dalam format data tertentu untuk keperluan rendering

Graphic 2D atau untuk real-time viewing dalam game.

Sumber : http://en.wikipedia.org/wiki/3D_computer_graphics



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

dan z. Beberapa bagian dari Objek 3Dadalah :

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

Node : pada games modeling tipa face yang biasanya sering digunakan adalah tris (segitiga).

4. Element : kesatuan sebuah Objek secara utuh.



Matematika pada Graphic 3D



Berikut ini adalah beberapa bahasan matematis pada pembuatan Graphic 3D: (menurut

a. The Rendering Pipeline

Pada Mainboard terdapat sebuah bagian yaitu GPU (Graphic Processing Unit) yang

mengeksekusi intruksi untuk rendering 3D graphic secara independen. CPU selalu mengirimkan

instruksi untuk merender pada GPU ini. GPU pada jaman sekarang sudah terpisah dari

Mainboard dan diberi nama VGA. GPU ini memiliki tempat penyimpanan sementara juga seperti

halnya CPU yang memiliki RAM, pada GPU terdapat lah VRAM. Perintah rendering yang

dikirimkan oleh CPU biasanya merupakan perintah dengan menggunakan fungsi dari OpenGL.



b. Vector

Seperti halnya kita ketahui, pada graphic 3D digunakan konsep grafika yaitu vector 3D yang

menyimpan informasi dari primitive node-node yang memiliki properties masing-masing.

c. Transformation

Vertex Transfromation : yaitu sebuah fungsi untuk memindahkan dan memodifikasi dari vertex

sebuah Objek 3D seperti rotasi, translasi, skalasi, dan pergeseran ) dan proyeksi (seperti

perspektif dan ortografi) semuanya dapat diwakili oleh penerapan yang tepat 4 '4 matriks untuk

mewakili koordinat titik sudut.

Sumber : http://glprogramming.com/red/appendixf.html

Sumber : Lengyel, Eric.2003. Mathematics for 3D Game Programming and Computer Graphics

2nd Edition. Charles River Media: Massachusetts.



Atribut primitif, Algoritma dan metode dalam Graphic 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.

Sumber : http://en.wikipedia.org/wiki/Ray_tracing_(graphics)

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 mencapai-nya 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.

Sumber : Charter, Chad.2007.Microsoft XNA Unleashed.SAMS : Indianapolis

k) Normal Mapping (height map) : sebuah textures yang mendeskripsikan normal dari tiap pixel,

membuat objek 3D memiliki ketinggian yang berbeda (lekukan, goresan dll) karena itu disebut

juga Normal Map

Sumber : Charter, Chad.2007.Microsoft XNA Unleashed.SAMS : Indianapolis

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.

o) etc



Graphic 3D ini dapat terdapat dalam berbagai format seperti .obj, .3ds dan .x (yang sering digunakan

dalam game)



C. Solid Modeling

Solid Modeling adalah suatu teknik untuk merepresentasikan sebuah Objek 3D dengan

menggunakan berbagai teknik pemodelan diantaranya (face modeling, box modeling, wireframe

modeling), biasanya digunakan untuk pembuatan arsitektur, desain produk, game dan animasi dan

menggunakan software CAD.



Software Solid Modeling awalnya digunakan untuk merepresentasikan teknik constructive solid

geometry (CSG) atau Boundary representation (B-REP) untuk mendefinisikan bentuk solid. Pada

awal 1980, software engineer mulai mengaplikasikan abstraksi teknik solid modeling yang lebih

tinggi. contohnya parametric feature-based solid-modelling.



Computer Aided Design (CAD) merupakan sebuah software yang mengimplementasikan teknik

parametric feature-based solid modeling. Berikut ini adalah beberapa teknik yang dapat digunakan

untuk Solid Modeling :



 Sweeping

o Sebuah area fitur yang "disapu keluar" dengan memindahkan primitif sepanjang path

untuk membentuk suatu solid feature. Fitur ini dapat menambahkan objek ( "extrusion")

atau menghilangkan material ( "cutter path").

o Biasa juga dikenal sebagai 'sketch based modeling'.

o Menggunakan teknik analog seperti extrusion, milling, lathe dan lain-lain.



 Boundary representation (BRep)

o Sebuah Objek solid direpresentasikan oleh sebuah batas-batas dari permukaan Objek

(edge / boundary surface) yang kemudian diberi isi untuk menjadikannya solid.

o Biasa dikenal juga sebagai 'surfacing'.

o Menggunakan teknik analog seperti; Injection moulding, casting, forging,

thermoforming, dll.



 Parameterized primitive instancing.

o Sebuah Objek yang dispesifikasikan pada library dan dibentuk dengan mengubah

parameter primitif-nya.

o Contohya, tabung dibuat pada library, model tabung ini akan digunakan untuk model

semua tabung untuk semua ukuran.



 Spatial occupancy enumeration (voxel)

o Suatu ruang vector dibagi menjadi sel-sel kecil dimana suatu Objek direpresentasikan

dengan himpunan Objek yang ditempatnya..



 Cellular decomposition

o Hampir mirip dengan "spatial occupancy", tetapi sel-selnya tidak regular, maupun

"prefabricated".



 Constructive solid geometry (CSG)

o Objek sederhana (primitives) yang digabung dengan menggunakan operasi boolean

(union, difference, intersection) dan transformasi linear.

o Special struktur datanta disebut CSG-tree, dimana primitives adalah leaves-nya dan

operasi bolean sebagai nodenya.



 Function representation (FRep)

o Setiap Objek diwakili oleh sebuah fungsi nyata dari titik koordinat. Titik berada diluar

Objek jika fungsi bernilai negatif, didalam Objek jika fungsi bernilai positif dan tepat

pada garis batas jika fungsi bernilai nol (isosurface).

o Fungsinya di evaluasi pada sebuah titik dengan menelusuri struktur tree mirip dengan

CSG-tree.

o Representasi ini dapat di convert menjadi BRep dengan menggunakan algortima

polygonization, contohnya untuk , algoritma “marching cubes algorithm”.



 Feature based modeling

o kombinasi kompleks dari Objek-Objek dan operator-operato yang dianggap sebagai

suatu kesatuan yang dapat dimodifikasi dan diduplikasi.

o Urutan dari operasi dicatat dalam sebuah “history tree”, dan perubahan parameter

dapat dilakukan melalui tree-nya.



 Parametric modeling

o Atribut dari fitur-fitur yang sudah terparameterkan, memberikan label, daripada

memberikan dimensi numerik, dan hubungan antara parameter dalam model dapat

dilacak, untuk merubah nilai-nilai numerik parameter lebih mudah..

o Hamper selalu digabungkan dengan parametric feature based modeling.



 Facet modeling

o Membentuk permukaan objek luar dari volume dari setiap plane segitiga, Sering

digunakan dalam model fisik reverse engineering .



Sumber : http://en.wikipedia.org/wiki/Solid_modeling



3D modeler Software yang menggunakan teknik dan metode pada solid modeling dan sering

digunakan dalam pembuatan Game :



1. AutoDesk 3DsMAx

Tools standart untuk membuat 3D yang dikeluarkan oleh Autodesk, lebih unggul dibidang

dalam pemodelan Objek arsitecture seperti rumah, meja, kursi dll.

2. AutoDesk Maya

Tools advance untuk membuat 3D yang dikeluarkan oleh Autodesk, lebih unggul dibidang

dalam pemodelan character design dan animasi.

3. Blender

Tools Freeware yang sudah support bahasa pemrograman phyton serta dapat langsung

membuat game dengan blender itu sendiri tanpa meeggunakan game engine lain, walaupun

blender juga dapat mengeksport file 3D agar dapat menggunakan game engine lainnya,

dapat dibandingkan dengan software berbayar lainnya seperti Maya, 3DsMax dan

Cinema4D.

4. AC3D (invis)

Modeler yang memiliki compability yang baik dengan berbagai OS walaupun tidak memiliki

rendere sendiri, biasanya rendering dengan menggunakan Pov Ray.

5. Aladdin4D (DiscreetFX)

Multi-Platform Modeler yang dikembangkan oleh adspec programming.

6. Carrara (DAZ Production)

3D tool set yang sudah lengkap dan banyak fiturnya untuk modeling, texturing, scene

rendering dan animasi.

7. Cinema4D (MAXON)

3D ,modeler yang diklaim paling friendly dengan user (artisan).

8. Houdini (Side Efek Software)

Digunakan untuk visual efek dan animasi karakter, biasa digunakan di Disney dan Pixar.

9. Autodesk Inventor

Varian lain dari Autodesk yang lebih dikhususkan pada mechanical design.

10. LightWave 3D

Modeler yang lumayan popular lainnya, biasa digunakan pada TV Production, diantaranya

Babylon 5, CSI Series, Iron Man dll.

11. Google Sketchup

3D modeler yang berbasiskan pada sketsa gambar awal, simple dan ringan digunakan. Ada

professional version dan free version dan terintegrasikan dengan google earth dan export ke

Google 3D Warehouse.

12. Autodesk SoftImage (XSI)

Varian lain dari Autodesk, merupakan professional tools untuk 3D Designer untuk Film,

Video Games dan Iklan. Terintegrasikan dengan mental Ray. Digunakan oleh banyak game

studio professional.

13. Swift 3D

Modeler 3D alternative yang murah dan lagi cukup powerful, terintegrasikan dengan baik

dengan software Adobe, Microsoft Silverlight, dan dapat memisahkan 3D animasi yang

sudah diexport ke dalam layer yang berbeda.

14. ZBrush

Tools 3D modeler yang memiliki konsep lain dari yang lain, ZBRush memodelkan 3D dengan

menggunakan metode Sculting (Memahat) seperti halnya kita saat membuat patung dari

tanah lait atau kayu. Dapat dilakukan modeling, texturing dan painting.



Sumber : http://wapedia.mobi/en/3D_modeler







Beberapa Standard Primitives yang biasanya terdapat dalam Software 3D modeler



 Box — prisma kotak. Kubus atau balok denganparameter length, width dan height dari box yang

dapat diatur.

 Cylinder

 Torus —membentuk seperti cincin atau donut.

 Cone — membentuk cone dengan dasar lingkaran.

 Sphere — membentuk bola penuh atau bola dengan proporsi tertentu.

 Tube — tabung.

 Pyramid — limas dengandasar persegi.

 Plane — Objek datar dan tipis, biasanya untuk terrain atau skin atau cloth.

 Geosphere — GeoSphere menghasilkanspheres and hemispheres berdasarkan 3 kelas dari

regular polyhedrons.





D. Camera Control

Camera Control pada Games 3D memerlukan perhitungan matematika pada vector 3D agar kamera

dapat di translasi, Zoomin (Skalasi), dan di Rotasi.

Sebagai contoh pada XNA :

Kamera memiliki projection terhadap real world (dalam bentuk matriks )

Kamera memiliki position, target.

Private vector3 cameraPosition – new vector3 (0.0f,0.0f,3.0f);

Private vector3 cameraTarget – new vector3.zero;

Kamera memiliki fungsi standart untuk zooming, Translasi, Rotasi dengan melakukan update nilai

pada vector3 diatas perlu dilakukan operasi matematika yang sesuai agar kamera dapat terkontrol

dengan baik.

+ Translasi : dengan menambahkan nilai pada vector3 tersebut sesuai dengan keinginan translasi.

+ Zooming : dengan menambahkan nilai pada vector3 tersebut sesuai dengan arah depan yang di

target kamera tersebut.

+ Rotasi : dengan menggunakan fungsi lingkaran pada vector3 tersebut sesuai dengan poros. Atau

dengan menggunakan convert dari vector4 (quartenion) menjadi rotasi pada Vector3. (Advance

Teknik).

Ket : arah pada vector 3D sesuai dengan kaidah tangan kanan pada sistem koordinat.



Sumber : Charter, Chad.2007.Microsoft XNA Unleashed.SAMS : Indianapolis p.61-63



Beberapa jenis kamera perspective pada Games 3D :

1. First Person perspective

Pada perspektif ini, kamera dianggap seakan akan sebagai mata dari pemain. Pada kamera tipe

ini, kita dibuat seakan-akan merasa kita sedang melihat keadaan dan merasakan hal yang sama

seperti karakter.

Tipe kamera ini adalah free role kamera dimana kamera dapat bergerak bebas pada sumbu x

dan z dan terbatas pada sumbu y. biasanya fungsi standartnya untuk translasi pada sumbu x dan

z, jika dapat meloncat / naik ke tempat tinggi maka di tambah translasi pada sumbu y.



2. Third Person perspective atau Over the Shoulder (OTS)

Pada perspektif ini, kamera dianggap seakan akan sebagai mata dari penonton yang selalu

mengikuti. Pada kamera tipe ini, kita dibuat seakan-akan merasa kita sedang melihat keadaan

dari karakter.

Tipe kamera ini adalah target kamera, dimana kamera bergerak mengikuti dari perpindahan

target (karakter). biasanya fungsi standartnya untuk translasi, rotation dan zooming.



3. Fixed Camera

Pada perspektif ini, kamera tetap pada tempat dan tidak berpindah. Dan biasanya terletak

diatas.

Tipe kamera ini adalah free kamera, dimana kamera sama sekali tidak bergerak atau bergerak

mengikuti dari perpindahan target (karakter) secara sumbu x dan y saja.



4. Combined System

Pada perspective ini kita dapat menggabungkan beberapa perspektif kamera diatas untuk

fungsionalitas yang berbeda.





Sumber : Larame, Francois Dominic.2002.Game Design Perspective.Charles River Media :

Massachusetts p.169-170



Other docs by linzhengnd
i-Health
Views: 0  |  Downloads: 0
State employees recall events of September 11
Views: 7  |  Downloads: 0
0804050421330_2110
Views: 4  |  Downloads: 0
Listino2009 - Meetup
Views: 0  |  Downloads: 0
TwoSurveyCalculator
Views: 0  |  Downloads: 0
Guidelines.xlsx
Views: 0  |  Downloads: 0
APPALACHIA AND THE OZARKS
Views: 2  |  Downloads: 0
Proliferation Studies
Views: 0  |  Downloads: 0
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!