Rabu, 14 Juni 2017

Visual Surface Determination (VSD)

VSD (VISUAL SURFACE DETERMINATION)
KELAS CONSERVATIVE : BOUNDING VOLUME




DISUSUN OLEH      :
Kelompok 3
Nama Anggota :
1.      Andry Darsono ( 51414172 )
2.      Danty Nurachmah S ( 52414531 )
3.      Hamda Prayogo ( 54414716 )
4.      Muhammad Fadhiil (  )
5.      Rizma Dwi Cahyaningsih ( 59414734 )
Kelas : 3IA09



FAKULTAS TEKNOLOGI INDUSTRI / TEKNIK INFORMATIKA
UNIVERSITAS GUNADARMA
2017


Visual Surface Determination (VSD)

            Visual Surface Determination (VSD) atau disebut juga dengan Hidden Surface Removal (HSR) merupakan suatu cara untuk menentukan garis atau permukaan yang terlihat pada suatu objek 3D dan spesifikasi pandangan (kamera). 
Terdapat 3 pendekatan utama pada permukaan terlihat, yaitu:
1.      Tes penampakan konservatif (conservative surface test) è hanya sebatas trivial reject saja, yang tidak memberikan jawaban, contohnya back-free culling. Untuk mendapat penyelesaiannya harus dilakukan dengan pendekatan yang lain.
2.      Ketelitian gambar (image-precission) è bagian yang terlihat ditentukan dengan point-point pada setiap posisis pixelnya pada bidang proyeksi. Contohnya pada raytracing, atau Z-buffer.
3.      Ketelitian objek (object-precission) è menentukan bagian mana yang terlihat dengan membandingkan objek dan bagian-bagiannya dalam layar. Contohnya

A.         Boundering Volume
Bounding Volume Hierarchy (BVH) adalah sebuah struktur data berupa tree yang terdiri dari container yang melingkupi objek atau container lainnya. Dengan menggunakan BVH, kita dapat mengabaikan objek yang parent-nya tidak berpotongan dengan garis yang ditembakkan. Dengan mengabaikan objek-objek yang tidak relevan, kita dapat mempercepat proses Ray Tracing secara signifikan. Gambar (a,b) Menunjukkan ilustrasi BVH pada scene 2 dimensi dan representasi BVH pada tree
Bounding Volume Hierarchy (BVH) dapat mempercepat proses rendering dengan mengabaikan objek yang tidak perlu diperhitungkan. Sayangnya konstruksi BVH bukan hal yang mudah dan konstruksi BVH secara manual tidak praktikal jika dibandingkan dengan kompleksitas scene yang akan di-render. Dalam tugas akhir ini penulis ingin menerapkan Agglomerative Clustering dengan optimalisasi untuk konstruksi BVH secara otomatis.
Dibawah ini ada gambar kelinci yang merupakan contoh dari BVH, gambar yang dibawah ini adalah gambar yg sudah dirender .
Dibawah ini merupakan tampilan yg belum di render , bisa dilihat bawa ada bagian yang tidak perlu difikirkan saat melakukan proses rendering.



B.     Ray Tracing dengan BVH
Pada algoritma Ray Tracing, kita memerlukan perhitungan persilangan ray-object sebanyak jumlah objek per pixel. BVH tersusun dari container dalam bentuk 3 dimensi yang membentuk sebuah tree. Dengan memanfaatkan BVH, objek yang parent-nya tidak bersilangan dengan objek tidak perlu diperhitungkan persilangannya Pada penelitian kali ini diimplementasikan BVH dalam bentuk binary tree.

C.    Approximate Agglomerative Clustering
Digunakan Approximate Agglomerative Clustering sebagai metode untuk membangun BVH. Secara garis besar AAC adalah Agglomerative Clustering dengan tahapan preprocessing yang membagi list cluster menjadi beberapa sub-list hingga perhitungan jarak tidak dilakukan secara global. Fitur utama dari AAC adalah pembagian subset di mana sebuah node hanya perlu mencari tetangga terdekat dari subset tersebut. Dengan node yang sudah tersortir, pembagian subset dapat dilakukan dengan cepat dan tidak akan mengurangi kualitas cluster secara signifikan. Sub-list tersebut lalu di satukan dengan menggunakan Agglomerative Clustering
Tahapan pertama AAC adalah tahap preprocessing data poligon. Proses yang dilakukan adalah menghitung Morton Code masing-masing poligon dan melakukan sorting dengan Radix Sort yang dijalankan pada awal build BVH. Morton Code digunakan untuk memudahkan proses sorting dengan menjaga lokalitas data. Radix Sort digunakan karena cocok digunakan untuk tipe data Morton Code.
Setelah tahapan preprocessing, cluster akan dibentuk pada metode buildTree yang akan menghasilkan cluster sesuai parameter algoritma. Proses ini akan membagi list poligon secara rekursif hingga memenuhi threshold tertentu. Tahap pembagian list memanfaatkan Morton Code sehingga hanya perlu mencari perubahan bit di posisi tertentu. Dikarenakan Morton Code menjaga locality data, hasil pembagian list tidak akan merusak kualitas tree.

Setelah jumlah node dalam suatu subset memenuhi kriteria, akan dilakukan Agglomerative Clustering dengan metode combineCluster yang merupakan implementasi Agglomerative Clustering dengan optimalisasi memoization. Tahap terakhir adalah menggabungkan seluruh cluster yang tersisa menjadi satu cluster (root). Tahap penggabungan cluster pada BVH bersifat non-decremental sehingga kita dapat menerapkan beberapa optimalisasi seperti menghitung jarak di awal pemanggilan loop dan tidak menghitung ulang jarak kecuali pada node yang membutuhkan.

Minggu, 11 Juni 2017

Der Klasikker Soccer

Anggota kelompok
Hamda Prayogo  (54414716)
Irma Azalia          (55414459)

Muhammad Fikri (56414932)


Der Klasikker Soccer

pada kali ini akan membahas cara membuat game sederhana menggunakan unity yaitu Der Klasikker Soccer. dalam game ini terdapat beberapa karakter yaitu bola sebagai karakter utama atau sebagai player, kubus bewarna putih sebagai rintangan, lalu kubus bewarna biru merah sebagai musuh dan sebuah gawang sebagai tujuan akhir bola.

MENU AWAL



Pada scene menu awal ini kita tambahkan object UI pada hirrarchy kemudian pilih raw image. kemudian kita ubah texture nya dengan menggunakan gambar yang sudah ada. tambahkan 2 buah button yaitu untuk tombol play dan tombol exit. Pada button play kita masukan script untuk pindah ke scene game. dan pada tobol exit kita masukan perintah untuk keluar program. berikut script pada tombol play.


GAME


Pada scene game ini pertama kita buat terlebih dahulu papan dengan menggubakan plane dan juga cube. plane sebagai arena permainan sedangkan cube untuk membuat dinding pada setiap sisi papan permainan. kemudian kita buat kembali object yaitu sphere yang nantinya akan kita buat sebagai player. pada asset kita buat 2 prefabs yang kita isi dengan cube yang nantinya kita buat sebagai cube putih dan cube merah biru. kemudian kita masukan texture pada setiap object, pada object prefabs kita drag sehingga tersusun formasi cube seperti diatas. untuk memasukan texture kita harus membuat material terlebih dahulu, disini kita membutuhkan 4 material.


masukan setiap texture ke setiap material kemudian setelah kita masukan tinggal kita drag material tersebut ke object pada scene yang kita akan beri texture tersebut.

pada object player kita masukan script seperti dibawah ini supaya object dapat digerakan menggunakan keyboard

kemudian masukan kembali script dibawah ini ke object player untuk mengatur score jadi ketika bola menabrak musuh maka akan kembali ke awal dan jika berhasil ke tujuan maka akan menambah score 10 dan kecepatan musuh bertambah

masukan script pada objek musuh untuk menggerakan objek secara random kekiri dan kekanan

kemudian buat empty object dan beri nama game manager, masukan script dibawah ini untuk mengatur tempat muncul player ketika menabrak musuh atau sampai tujuan

kemudian kita membuat kanvas yang berisi score, tombol pause, dan tombol keluar. pada button pause kita masukan script dibawah ini.




maka akan jadi game seperti pada video yang ada pada link dibawah ini :