Visible-Surface
Determination atau yang sering disebut dengan Hidden Surface Removal atau
hidden-surface elimination adalah suatu algoritma yang digunakan untuk
menghilangkan penampilan bagian yang tertutup oleh objek yang didepannya.
Apabila ada
dua bidang yang berpotongan, ditampilkan biasa tanpa menggunakan algoritma
Visible Surface Determination maka bagian yang berpotongan itu akan tidak
kelihatan, oleh karena bidang yang satu ditutupi oleh bagian yang lain tanpa
memotong. Oleh karena itu untuk menampilkan bidang perpotongan dengan
memberikan titik pandang dan arah pandang, diperlukan Algoritma Hidden Surface
Removal.
Dapat
dikategorikan menjadi object-space methods dan image-space methods. Algoritma
ruang objek, menentukan objek mana yang akan berada di depan dari yang lain
digunakan pada 3D objek ( verteks,edge,permukaan). Algoritma ruang gambar
menentukan objek mana yang tampil pada setiap pixel digunakan pada gamabar 2D.
Kompleksitas
pada Hidden Surface Elimination adalah pertama jika suatu tempat memiliki n permukaan, maka setiap permukaan harus
di uji terhadap setiap permukaan lain untuk visibilitas, bisa digunakan
algotima presisi objek untuk mengambil O(n^2) waktu. Dilain hal, jika terdapat N Ipixel, dapat menggunakan algoritma
presisi gambar untuk mengambil O(nN) waktu, setiap pixel harus diuji untuk
visibilitas dan n permukaan. Sejak angka permukaan lebih kecil ketimbang angka
pixel, maka penentuan angka yang harus dibuat harus lebih kecil dari objek
presisi, n<<N.
Setelah kita mengerti tentang VSD, lalu apakah itu Backface Culling? Backface Cully (Backface Culling) adalah bagian yang penting dalam performa 3D Enginge untuk mengecek visibilitas. Tujuannya adalah mendeteksi poligon yang tidak terlihat di dalam di dalam sebuah scene tertentu, yaitu poligon yang tidak tertangkap oleh penglihatan.
Mendeteksi
back-facing poligon memungkinkan kita untuk menghilangkannya dari pipeline
rendering engine pada tahap awal, sehingga mengurangi jumlah perhitungan dan
lalu lintas memori. Ada berbagai cara mendeteksi apakah poligon menghadap ke arah
atau menjauhi viewer (pemirsa), dan masing-masing metode memiliki tingkat
kerumitan dan akurasi yang berbeda.
Backface
culling dapat dilakukan pada beberapa tahap dalam pipeline 3D. Meskipun kita
bisa duduk santai dan membiarkan proses raster (mengkonversi gambar yang
disimpan sebagai outline ke dalam piksel yang bisa ditampilkan di layar atau
dicetak) melakukan Culling sendiri untuk kita, ada baiknya untuk untuk mengatur
performa culling terlebih dahulu. Karena, semakin banyak data yang tidak
relevan kita buang, semakin sedikit data yang perlu dimasukkan ke dalam sistem
(menghemat bandwith) dan semakin sedikit pula perhitungan yang harus dilakukan
(menghemat penggunaan CPU). Culling dapat dilakukan dalam 3 tahap:
1.
sebelum transformasi dan pencahayaan
2.
setelah transformasi namun sebelum pencahayaan
3.
pada saat rasterize (setelah trasnformasi dan pencahayaan)
Tahap
2 dan 3 biasanya dilakukan di ruang layar dengan memeriksa urutan searah jarum
jam/ berlawanan jarum jam dari simpul poligon. Pada tahap 1 biasanya dilakukan
dengan menghitung dot produk dari tampilan vektor dan segi poligon normal. Segi
normal dapat dihitung cepat atau didahului dan disimpan dengan kumpulan data.
Bagaimanapun, culling tahap 1 lebih cepat dari pada tahap 2 dan 3 karena lebih
menghemat bandwith dan memerlukan sedikit perhitungan.
Berikut
contoh gambar dari Backface Culling :



Tidak ada komentar:
Posting Komentar