counter

Rabu, 14 Juni 2017

VSD Konservatif: Back Face Culling


PENDAHULUAN

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)

Tes penampakan konservatif 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 pada poly clipping, BSP trees, dll.


                                                     PEMBAHAS

Backface culling merupakan cara kerja metode ini adalah dengan hanya menggambar poligon yang memiliki vektor normal keluar, dengan cara mencari dot product dari vektor normal poligon dan vektor arah pelihat seperti terlihat pada persamaan 1.0. Apabila hasilnya lebih besar dari nol maka vektor normal poligon merupakan vektor normal keluar dan poligon akan digambar

n.v > 0     (Persamaan 1.0)

Penghapusan dengan backface culling akan membuat tidak akan ada lagi faces (gambaran) di belakang objek yang akan ditampilkan. Batasan dari algoritma ini adalah:

1.      Hanya dapat digunakan pada benda padat yang dimodelkan sebagai polygon mesh. Ini merupakan model yang paling umum untuk membangun sistem grafis line-scan.

2.      Bekerja baik pada polyhedral cembung, tapi belum tentu pada polyhedral cekung. Contohnya pada gambar di bawah ini, dimana bagian dari hidden face tidak akan dihapuskan oleh penghapusan back-face (pengolahan yang lebih lanjut).

Titik-titik yang terdapat pada permukaan normal dapat dikategorikan bebrapa jika dilihat dari suatu pusat proyeksi pada poligonnya. . Lebih jelasnya dapat dipahami pada gambar 1.0

1.      Positive    (> 0) : poligon back-face

2.      Zero          (= 0) : jika dilihat dari tepi

3.      Negative   (< 0) : poligon  front-face


(Gambar 1.0)

Contoh implementasi backface culling adalah pada bentuk solid tidak standar adalah pada bentuk pecahan tengkorak pada gambar 1.1. Ini adalah langkah dalam pipa grafis yang menguji apakah titik-titik di poligon muncul secara searah jarum jam atau berlawanan arah jarum jam saat diproyeksikan ke layar. Jika pengguna telah menentukan bahwa poligon front-facing memiliki belitan searah jarum jam, namun poligon yang diproyeksikan di layar memiliki belokan berlawanan arah jarum jam maka telah diputar untuk menghadap ke depan dari kamera dan tidak akan ditarik.


Gambar 1.1.

Proses membuat objek rendering lebih cepat dan lebih efisien dengan mengurangi jumlah poligon agar program bisa menggambar. Obyek-obyek tersebut benar-benar tersumbat oleh sisi yang menghadap kamera.

Secara umum backface culling dapat diasumsikan tidak menghasilkan artifak yang terlihat dalam adegan yang diberikan jika hanya berisi geometri tertutup dan buram. Dalam adegan yang mengandung poligon transparan, poligon menghadap ke belakang bisa terlihat melalui proses komposisi alfa. Dalam rendering bingkai kawat, pemusnahan di bagian belakang dapat digunakan untuk mengatasi masalah penghapusan garis tersembunyi secara keseluruhan, namun hanya untuk geometri cembung tertutup.

Tidak ada komentar:

Posting Komentar