Jumat, 05 Juli 2013

Tugas Softskil 4

Hai teman – teman...kita ketemu lagi pada penulisan berikutnya...kali ini kita akan membahas banyak mengenai visibility pada video game. Pertama – tama kita harus tau dulu apa sich yang dimnaksud dengan scene 2.5D? [1]2.5D adalah istilah-istilah, terutama di video game industri, yang digunakan untuk menggambarkan salah satu dari Proyeksi grafis 2D dan teknik yang mirip digunakan untuk menyebabkan serangkaian gambar (atau adegan) untuk mensimulasikan penampilan yang tiga dimensi (3D) padahal sebenarnya mereka tidak, atau gameplay di sebaliknya tiga dimensi video game yang dibatasi ke bidang dua dimensi.

Setelah membahas mengenai scene, kita bahas lagi mengenai LOD. LOD ini sangat penting banget loch perannya dalam pembuatan game..karena akan menampilkan setiap detail dalam game tersebut. Hmmm susah juga yah.. yuk kita kenal dulu mengenai LOD, apa sich LOD itu ? [2] Dalam komputer grafis , akuntansi untuk tingkat detail melibatkan menurunkan kompleksitas representasi objek 3D seperti bergerak menjauh dari penampil atau sesuai metrik lainnya seperti objek penting, kecepatan mata-ruang atau posisi.

Konsep dasar diskrit LOD (DLOD) adalah untuk menyediakan berbagai model untuk mewakili objek yang sama. Mendapatkan model-model membutuhkan algoritma eksternal yang sering non-trivial dan subjek banyak teknik pengurangan poligon . Berturut-turut algoritma LOD-ing hanya akan menganggap model-model yang tersedia.

Algoritma DLOD sering digunakan dalam aplikasi kinerja-intensif dengan set data kecil yang dapat dengan mudah masuk dalam memori. Meskipun dari inti algoritma bisa digunakan, granularity informasi tidak cocok untuk jenis aplikasi. Ini jenis algoritma biasanya lebih mudah untuk mendapatkan kerja, memberikan baik kinerja lebih cepat dan lebih rendah CPU penggunaan karena dari beberapa operasi yang terlibat.



Sebuah contoh dari berbagai rentang DLOD.Daerah gelap dimaksudkan untuk diberikan dengan detail yang lebih tinggi.Sebuah operasi pemusnahan tambahan dijalankan, membuang semua informasi luar frustum (daerah berwarna).

Nahhh sudah mengertti dan bisa membayangkan mengenai LOD kan..?sekarang kita bahas mengenai Terrain dan hubungannya dengan Terrain LOD.  Dalam suatu game, Terrain merupakan model yang sangat besar. Membuat setiap pointnya secara eksplisit sangatlah tidak mungkin, maka metoda untuk mengotomatiskan pembangkitan Terrain merupakan hal biasa. Ketika proses rendering, sebagian dari Terrain tertutup dan sebagian lain sangat jauh, oleh karena itu dikembangkanlah Terrain LOD algorithms. [3.1]Terrain biasa disebut Terrain digunakan sebagai istilah umum dalam geografi fisik, mengacu pada letak tanah. Hal ini biasanya dinyatakan dalam hal ketinggian, kemiringan, dan orientasi fitur medan. Medan mempengaruhi aliran air permukaan dan distribusi. Di wilayah yang luas, hal itu dapat mempengaruhi pola cuaca dan iklim. Ketika seorang pembuat game melakukan rendering yang terjadi pada tampilannya adalah sebagian tertutup dan   sebagian lagi terlihat jauh, maka dari itu dibuatlah algoritma terrain Perbandingan nya dengan Traditional LOD yaitu pada traditiuonal LOD Membuat LODs untuk setiap objek terpisah dalam preprocess dan pada saat run-time, memilih setiap objek LOD sesuai jarak objek (atau kriteria yang sama) [3.3]. Apa hubungan Terrain LOD dengan Triangle Bintree (Binary Triangle Trees) ?
Sebuah Binary Segitiga Pohon (bintritree) adalah struktur data yang sangat menarik. Mereka menggabungkan kesederhanaan Pohon biner (setiap node hanya memiliki dua keturunan) dengan luas 2-dimensi yang mencakup sifat dari Quad-Tree. Kita juga mendapatkan keuntungan dari semua wilayah yang segitiga sama kaki kanan (sudut 90 derajat menghubungkan dua sisi yang sama) yang sempurna untuk melemparkan pada API 3D rendering, dan tidak akan pernah mengembangkan retak atau T-junction. Hal ini membuat BinTriTrees berguna terutama untuk tessellating array biasa (misalnya bidang ketinggian) kepadatan segitiga non-reguler, misalnya dapat menampilkan jarak penglihatan  atau tampilan dekat untuk kepadatan tinggi, dan jauh dari tampilan penampil Anda menggunakan kepadatan segitiga yang sangat rendah.
Hubungan keduanya adalah bahwa dalam Binary Triangles Tress adalah sebuah penyangga segitiga yang digunakan untuk membuat tahapan dalam LOD.

Triangle Bintrees (Binary Triangle Trees) yaitu Indeks penyangga berisi deskripsi segitiga  untuk membuat LOD. Setiap nodedari segitigabin-pohon merupakan segitiga renderable. Karena kita menggunakan array indeksuntuk referensisimpuluntuk membuatsebuah segitigadapat direpresentasikan dengan menggunakan tiga bilangan bulat yang dapat digunakan untuk Indeks array vertex yang sesuai. 

Selain ini, kita juga perlu untuk  menyimpan kesalahan metrik untuk segitiga, mirip dengan yang Duchaineau ROAM, sehingga kita dapat melakukan tes LOD saat runtime untuk setiap node di pohon.

Selanjutnya kita belajar mengenai quadtrees.[3.5] Sebuah quadtree adalah pohon struktur data dimana setiap simpul internal memiliki tepat empat anak. Quadtrees yang paling sering digunakan untuk partisi ruang dua dimensi dengan rekursif membagi menjadi empat kuadran atau wilayah. Daerah mungkin persegi atau persegi panjang, atau mungkin memiliki bentuk sewenang-wenang. Berikut merupakan contoh gambar Quadtrees & Bintrees ! 

Bintrees


Quadtrees











Jumat, 21 Juni 2013

Tugas Softsil 3



Hai teman – teman..kita ketemu lagi pada penulisan berikutnya…kali ini, kita akan membahas mengenai Interactive System. Sebelum kita bahas yang lebih kompleks, pertama kali kita harus tau dulu, apa sich konsep dari Interactive System itu ? [1]  Konsep dari Interactive Entertainment merupakan konsep dengan proses yang didukung dengan media interactive sehingga seluruh aktifitas didalamnya lebih mudah dalam menyerap segudang perkembangan teknologi yang terus berkembang sangat cepat.Nah…setelah mengerti mengenai Interactive Entertaiment, yang kedua kita bahas dulu Interactive Preogram, apa sich Interactive Program itu ? [2] Hal-hal penting yang harus diperhatikan dari interactive programs adalah dari segi user & programnya. Peranan dari user yaitu bisa memahami dengan baik dari sebuah program yang dibuat dan peran dari program yaitu membuat sebuah program yang mudah dipahami untuk digunakan para user agar menjadikan sebuah komunikasi yang baik antara user dan program yang dibuat tersebut. Nahhh setelah memahami dengan benar mengenai Interactive Entertainment dan Interactive Program, maka selanjutnya kita akan membahas mengenai Interactive System yang menjadi judul dari pokok bahasan kita.
Salah satu pendukung interactive system adalah adanya GUI (Graphical User Interface).  Apa sich fungsi dari GUI? [3] Dari pemahaman tentang GUI sebelumnya, fungsi-fungsi GUI dalam dunia teknologi dan informasi saat ini sangat beragam. Berikut beberapa fungsi dari penggunaan GUI dalam dunia Iptek khususnya komputer :
1. Pointing device dengan perangkat berupa mouse.
2. Memiliki fungsi sebagai plug and play, yang mana memudahkan user dalam   menginstall dan uninstall hardware/sofware (sinkronisasi)
3. Membuat software-software yang menuntut aplikasi dalam komputer user yang dapat digunakan untuk kegiatan user dalam proses seperti menulis text, spreadsheet. sound, graphic dan lain-lain.
4. Untuk digunakan dalam pembuatan System Operasi sebagai User friendly dan ergonomis.
5. Pembuatan website.
6. Opensource software/hardware atau pengembang aplikasi-aplikasi skala besar lainnya.


Setelah kita mengetahui fungsi dari GUI, kita juga harius mengetahui komponen – komponen GUI, [4] apa saja sich komponen – komponen tersebut?


Wuich banyak juga yah komponen – komponen dari GUI. Namun dari komponen – komponen tersebut, akan mempermudah user untuk menggunakan GUI, jadi gak apa – apa yah agak banyak sedikit..

Setelah kita membahas mengenai GUI, hal yang harus kita ketahui selanjutnya adalah mengenai event. Apa sich event itu ? [5] Event merupakan suatu kejadian yang terjadi karena adanya interaksi user dengan komponen-komponen GUI. Tanpa event, peran GUI tidak akan berjalan. Macam-macam event untuk komponen-komponen GUI antara lain
Event Object merupakan object yang mendiskripsikan sebuah event yang di-trigger oleh event source.
Event Handler merupakan method yang menerima event object dan melakukan respond yang sesuai dengan event object tersebut.
Event Listener merupakan interface yang akan meng-handle event yang terjadi. setiap type event mempunyai interface yang bersesuaian. Listener tersebut harus diimplementasikan oleh class yang akan meng-handle event.
Event Source merupakan pembangkit / trigger sebuah event objects.  
Event model adalah model yang digunakan Java untuk menangani interaksi antara user dan komponen GUI.

Nahhh setelah kita bahas mengenai event, sekarang kita lihat keterkaitan event dalam konsep Interactive Program. [6] Pemrograman interaktif adalah prosedur penulisan bagian dari sebuah program ketika sudah aktif. Jadi event dalam konsep struktur interactive program yaitu event yang terjadi ketika sebuah program yang sudah aktif

Sekian dulu yah penulisan kali ini yang membahas tentang Interactive System..semoga bermanfaat bagi teman – teman semua. Sampai jumpa pada penulisan berikutnya ^^

http://7seasons.wordpress.com/2010/10/30/event-handling-gui-pada-java/
http://noorhayatin.staff.umm.ac.id/
http://momotarokun.wordpress.com/2009/10/06/pemahaman-java-gui-graphical-user-interface/
http://staff.uny.ac.id/sites/default/files/pengabdian/sri-andayani-ssi-mkom/pembuatan-gui-dengan-matlab.pdf

http://en.wikipedia.org/wiki/Interactive_programming


Sabtu, 11 Mei 2013

Tugas Softskil Ke 2 ( Pengantar Teori Game )

Hai semua..kali ini saya akan membahas mengenai perancangan suatu game beserta dengan penjelasan teori pendukungya.  Pertama - tama kita bahas tentang shading atau cahay atau bayangan. [1]Apa sich shading itu?shading merupakan sebuah teknik pencahayaan yang menghasilkan bayangan pada objek yang diberikan efek cahaya. 

[2a]Shading dalam kaitannya dengan Ambient yaitu Walaupun sebuah benda tidak terkena cahaya secara langsung, benda tersebut masih dapat terlihat. Hal ini terjadi karena adanya cahaya yang dipantulkan secara tidak langsung oleh benda di sekitarnya nah..model pencahayan sederhana ini disebut cahaya ambient.

[2b]Shading dalam kaitannya dengan Specular yaitu pada benda berkilau, terdapat sebidang daerah yang
terang pada permukaan benda yang letaknya tergantung dari sudut pandang terhadap benda. Efek cahaya ini disebut pencahayaan specular.

[2c]Shading dalam kaitannya dengan Diffuse yaitu Saat sebuah benda matt dikenai cahaya, maka
intensitas cahaya akan dipantulkan rata ke semua arah. Inilah yang disebut cahaya diffuse.

Setelah membahas tentang shading sekarng kita membahas mengenai mapping. [3a]Apa sih yang dimaksud dengan mapping ? Mapping ialah sebuah bentuk kegiatan untuk melakukan pewarnaan atau memetakan permukaan geometri pada objek 3D.[3b] Jenis - jenis mapping antara lain yaitu :
1. Tekstur-Maps
Maps berwujud gambar tekstur 2D yang dituangkan ke permukaan geometri/objek untuk membuat penampilan objek tersebut tampak halus untuk detail permukaannya.
2 . Environment-Maps
Adalah Maps yang memiliki pewarnaan dengan banyak gambar (tekstur) yang merekam refleksi global dan pencahayaan pada objek.
3 Bump-Maps
Bump maps adalah maps yang memfokuskan permukaan tekstur pada objek, dengan menggunakan maps ini, permukaan geometri/objek akan terlihat berbeda dan unik, tidak seperti objek-objek yang memiliki permukaan normal pada umumnya.
4. Normal-Maps
Maps ini serupa dengan bump-maps, perbedaannya adalah fungsionalitas yang ada pada normal maps, maps ini secara alami akan menghasilkan bentuk permukaan yang tidak halus tanpa menggunakan lebih banyak penambahan atau pengurangan poligon pada objek.
5. Shadow-Maps
Yang terakhir adalah shadow maps yaitu maps yang menghasilkan suatu bayangan tekstur pada objek dengan menangkap siluet objek tersebut dari sumber cahaya yang terlihat.

Nah..setelah kita selesai membahas mengenai teori - teori pendukung pembuatan game, sekarang kita coba untuk [4a]merancang sebuah game sederhana. Saya mencoba untuk membuat sebuah game sederhana menggunakan aplikasi unity. Saya akan menggunakan beberapa objek sebagai pendukung penampilan game dan sebuah character sebagai wakil user dalam memainkan game tersebut.Berikut sebagian tampilannya :



Setelah melakukan perancangan game, [4b]selanjutnya kita buat skenario game tersebut. Dalam yang akan dibuat, akan ada sebuah character atau subjek yang akan menjalankan perintah – perintah yang akan digunakan user untuk mengupayakan agar game tersebut berhasil dimenangkannya. Dalam game tersebut character atau user akan melewati berbagai macam rintangan untuk mengumpulkan koin – koin sampai batas minimum yang telah ditentukan, apabila tidak sampai batas minimum tersebut, maka dinyatakan kalah. Jika menang akan berlanjut ke game berikutnya dengan rintangan yang baru. Rintangan – rintangannya antara lain berupa api, boks – boks yang tidak bias dilewati dan semak yang banyak.

Setelah membuat skenario game tersebut, [4c]terakhir saya akan menampilkan salah satu objek yang digunakan dalam game tersebut. Berikut adalah hasil renderingnya :


 

Jumat, 26 April 2013

Pengantar Teori Game 2

Hai semua..ini merupakan bahasan lanjutan dari Pengantar Teori Game 1
Selanjutnya kita bahas mengenai perbedaan antara Geometric Transformation dan Color Space Transformation. [8]Transformasi Geometrik adalah transformasi berdasarkan perpindahan geometrik suatu titik. Transformasi ini terdiri dari translasi, skala dan rotasi Color Space Transformation membahas cara-cara mentransfomasi warna dalam model warna tertentu saja dilakukan dengan cara Formulasi, Komplemen warna, Pemotongan warna, Koreksi warna, Pemrosesan histogram.
Berikutnya dijelaskan yang dimaksud dengan Koordinat Homogen (Homogeneous Coordiantes) adalah [9]transformasi Koordinat, yang diubah system koordinatnya sehingga objek mengalami transformasi dikarenakan perubahan system koordinat tersebut.


PROYEKSI
Terakhir, kita akan membahas mengenai proyeksi. Proyeksi merupakan salah satu jenis transformasi, yaitu transformasi koordinat. Proyeksi pada bidang datar (planar) dilakukan melalui sinar proyeksi yang muncul dari titik pusat proyeksi melewati setiap titik dari benda dan memotong bidang proyeksi (projection plane) untuk mendapatkan benda hasil proyeksi. Proyeksi Planar (Planar Geometric Projections) dibedakan menjadi:
1.    Proyeksi Paralel.
Berdasarkan hubungan antara arah proyeksi dengan vektor normal dari bidang proyeksi, proyeksi paralel dibedakan menjadi:
-       [10]Proyeksi Orthographic diperoleh apabila sinar proyeksi tegak lurus dengan bidang proyeksi. Proyeksi orthographic sering digunakan untuk menghasilkan tampak depan, tampak belakang, tampak samping dan tampak atas dari sebuah
benda atau disebut sebagai Multiview orthographic. Tampak atas, tampak belakang dan tampak dari samping sebuah benda sering disebut sebagai elevation. Sedangkan tampak dari atas disebut sebagai plan view.
Transformasi untuk proyeksi multiview orthographic dapat diperoleh dengan rumus
Proyeksi terhadap bidang x-z:qx = px,qy =pz
Proyeksi terhadap bidang y-z:qx = px,qy =pz
Proyeksi terhadap bidang x-y:qx = px,qy =py
Dimana q(x,y) merupakan titik hasil proyeksi dari p(x,y,z)
Proyeksi orthographic yang menampakan lebih dari satu permukaan benda disebut sebagai proyeksi axonometric
·         proyeksi axonometric dilakukan dengan mengatur agar bidang proyeksi berpotongan dengan ketiga sumbu koordinat (principal axes) pada sudut yang sama maka kita akan memperoleh proyeksi isometric
·         proyeksi dimetric yaitu proyeksi yang diperoleh dengan mengatur agar bidang proyeksi berpotongan dengan dua sumbu utama pada sudut yang sama
·         proyeksi trimetric diperoleh apabila ketiga sumbu utama berpotongan dengan bidang proyeksi pada sudut yang berbeda
-          Oblique.

2.    [11]Proyeksi Perspektif.
Proyeksi perspektif memberikan sudut pandang yang lebih realistis dibandingkan proyeksi orthographic. Proyeksi perspektif pada kenyataannya jarak benda terhadap kita akan mempengaruhi bagaimana benda tersebut terlihat. Benda yang terlihat jauh akan kelihatan kecil sedangkan benda yang dekat akan terlihat lebih besar. Efek ini disebut sebagai shortening. Pada perspektif semua garis menghilang pada satu atau lebih titik yang sama atau disebut titik hilang (vanishing point).

Untuk lebih jelasnya, saya akan memberikan gambar proyeksi perspective dan proyeksi orthographic [12]berikut adalah gambarnya :
gambar Proyeksi Perspective:

sGambar Proyeksi Orthographic :
Perbandingan antara keduanya adalah[13] pada Orthographic sinar proyeksi tegak lurus dengan bidang proyeksi dan perspektive sudut pandang yang lebih realistis dibandingkan proyeksi orthographic. Proyeksi perspektif pada kenyataannya jarak benda terhadap kita akan mempengaruhi bagaimana benda tersebut terlihat. Benda yang terlihat jauh akan kelihatan kecil sedangkan benda yang dekat akan terlihat lebih besar
Referensi :

http://sadchalis15.wordpress.com/2012/01/10/proyeksi-grafika-komputer/

Tabel Kinerja :

NPM
NAMA
Kinerja
52410242
Edith Pradipta N
Mengerjakan soal 1-4
50408275
Dian Indrawati E
Mengerjakan soal 5-9
54410788
Muhammad Rian Arifin
Mengerjakan soal 10-13

Pengantar Teori Game 1


Hai teman – teman sudah lama tidak berjumpa kali ini, saya akan menulis banyak hal tentang metode Scan Conversion, transformation dan proyeksi. Mari kita pelajari satu per satu

Scan Conversion
Scan Conversion merupakan metoda untuk memetakan titik ke dalam suatu pixel. Scan Conversion dapat dilakukan terhadap Line (garis), polygon, ataupun garis lengkung (kurva). [1]Algoritma yang sering dipakai untuk menggambar garis antara lain  Algoritma garis Digital Diferensial Analyser (DDA), Algoritma garis Bresenham, Algoritma garis C++.  [2]Algoritma Bresenham dikembangkan oleh Bresenham berdasarkan selisih antara garis yang diinginkan terhadap setengah ukuran dari pixel yang sedang digunakan.
Bresenham pada tahun 1965, melakukan perbaikan dari algoritma perhitungan koordinat piksel yang menggunakan persamaan (1), dengan cara menggantikan operasi bilangan rii perkalian dengan operasi penjumlahan, yang kemudian dikenal dengan Algoritma Bresenham. Pada algoritma bresenham, nilai y kedua dan seterusnya, dihitung dari nilai y sebelumnya, sehingga hanya titik y pertama yang perlu dilakukan operasi secara lengkap. Perbaikan algoritma ini ternyata tidak menghasilkan perbaikan yang cukup siginifikan. Perbaikan berikutnya dilakukan dengan cara menghilangkan operasi bilangan riel dengan operasi bilangan integer. Operasi bilangan integer jauh lebih cepat dibandingkan dengan operasi bilangan riel, terutama pada penambahan dan pengurangan. untuk menentukan jumlah pixel yang membuat suatu garis menggunakan algoritma bresenhem adalah sebagai berikut :
-          Masukan 2 endpoints, simpan endpoints kiri sebagai (x0, y0) dan kanan (x1,y1)
-          Hitung konstanta Δx, Δy, 2Δy, 2Dx,2Δy–2Δx dan nilai awal parameter keputusan p0= 2Δy –Δx
-          Pada setiap xk di garis, dimulai dari k=0, ujilah : Jika pk 0 maka plot (xk+1, yk+1) dan pk= pk+ 2Δy -2Δx
-          Ulangi tahap 4 sampai mencapai x,y yang di tuju.
[3]Dalam membuat garis,kita juga harus memperhatikan ketebalan garis (thickness) dan bentuk tepi garis (ends).  Ada 3 macam bentuk tepi garis  yaitu Butt, Round dan Square. Berdasarkan tebalnya ada dua macam yaitu garis tebal dan garis tipis dengan perbandingan 1 : 0.5. Pada umumnya tebal untuk garis tebal adalah 0.5 mm atau 0.7 mm. Dengan jarak minimum antara garis sejajar ( termasuk garis arsiran ), tidak boleh kurang dari tiga kali tebal garis yang paling tebal. Berikut merupakan gambar bentuk tepi garis tersebut :
Tipe garis round merupakan tipe garis yang mebentuk sebuah setengah lingkaran kearah luar pada bagian ujung garis, tipe garis square merupakan tipe garis yang membentuk sebuah persegi pada bagian ujung garis dan tipe garis butt merupakan tipe garis yang membentuk sebuah setengah lingkaran kearah dalam pada bagian ujung garis
[4]Selanjutnya, kita bahas penggabungan garis. Terdapat 3 jenis penggabungan garis yang dapat kita lakukan yaitu penggabungan garis Ugly, Bevel, Round, Miter. Berikut ini merupakan gambar penggabungan garis tersebut :

Ugly Join  adalah penggabungan dua buah garis yang memilik sudut lebih kedalam, bevel adalah penggabungan dua buah garis yang memiliki sudut lebih menonjol, round adalah penggabungan dua buah garis yang memiliki sudut lebih melingkar dan miter adalah penggabungan dua buah garis yang memiliki sudut lancip.
Transformations
Selanjutnya kita akan belajar mengenai transformation. Transformation adalah suatu metoda untuk mengubah lokasi titik. Operasi-Operasi Primitive pada Transformations terbagi menjadi:
Ø  Scale,
Ø  Rotate,
Ø  Shear,
Ø  Flip,
Ø  Translate
[5]Untuk menjelaskan mengenai transformation ini, saya akan memberikan satu buah gambar objek yang nantinya akan coba kita transformasikan dengan Scale, Rotate, Shear, Flip, Translate, dan Rotasi. Berikut contoh objeknya :
Hasil transformasi objek tersebut yang ditransformasikan dengan Scale, Rotate, Shear, Flip, Translate, dan Rotasi :
Scale adalah skala pengali sama untuk semua komponen

Rotate/Rotasi terhadap titik (0,0) sebanyak 450


Shear terhadap Sumbu Y


Flip terhadap garis X


Translate. (tx,ty) disebut vector Translasi


Berikutnya saya akan menjelaskan tentang linear transformation dan non-linear transformation. [6]Model linier menunjukkan hubungan antara dua variabel mengikuti garis lurus. Sedangkan non linier mengikuti garis yang tidak lurus, misalnya kuadratik (garisnya melengkung ke atas lalu turun ke bawah).  Untuk lebih jelasnya, saya akan memberikan [7] contoh Linear Transformation dan Non-Linear Transformation dari Operasi-Operasi Primitive transformation yaitu :
Contoh Linear Transformation :

Contoh Non-Linear Transformation :