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.

Tidak ada komentar:

Posting Komentar