Apa itu Penyangga Stensil?

Dalam pemrograman grafis komputer, buffer stensil adalah area memori yang dapat ditarik dan digunakan dalam kaitannya dengan buffer grafis lain untuk mencapai efek yang berbeda, atau untuk menutupi area adegan sehingga tidak akan diproses atau dirender. Buffer stensil adalah buffer per-piksel yang mirip dengan gambar hitam putih, di mana setiap lokasi di buffer dapat menyimpan nilai yang paling sering paling panjang 1 byte tetapi bisa sekecil 1 bit. Buffer awalnya dirancang untuk bertindak sebagai topeng benar atau salah, seperti stensil dunia nyata, sehingga area pemandangan dapat dikaburkan atau diabaikan dengan mengatur nilai daerah yang berbeda dari buffer stensil ke nilai selain nol. Ada sejumlah kegunaan buffer di luar masking sederhana, termasuk menggambar volume bayangan, menerapkan lingkaran cahaya di sekitar objek atau menemukan area di mana objek saling tumpang tindih. Dalam banyak kasus, buffer dipertahankan dalam memori grafis pada kartu grafis sehingga dapat diakses dengan cepat selama rendering.

Konsep buffer stensil awalnya adalah cara untuk membuat topeng dua dimensi (2D) yang dapat diterapkan ke adegan tiga dimensi (3D) saat simpul bergerak melalui pipa grafis. Jika lokasi verteks 3D, setelah rasterisasi, terkait dengan area buffer stensil yang tidak disetel ke nol, maka verteks tersebut dapat diabaikan dan pemrosesan pipeline lainnya dilewati. Hal ini memungkinkan programmer cara untuk membuat hanya bagian kecil dari sebuah adegan atau untuk membuat gambar menjadi viewport berbentuk tidak teratur, seperti refleksi di cermin kecil dalam adegan yang lebih besar, di mana bentuk cermin digambar sebagai stensil di buffer, dan kemudian refleksi ditarik melalui bentuk itu.

Kekhawatiran memori menyebabkan bentuk asli buffer stensil menjadi kisi nilai bit tunggal di mana setiap piksel dalam buffer hanya bisa benar atau salah. Saat kartu grafis dikembangkan, sebagian besar buffer menjadi mampu menyimpan nilai byte penuh di setiap lokasi piksel, memungkinkan pemrogram untuk memiliki nilai yang lebih kompleks di suatu lokasi. Ini memungkinkan buffer digunakan untuk mendeteksi area di mana objek tumpang tindih, yang dapat dilakukan dengan menambah nilai buffer di lokasi jika objek menempati piksel itu di layar saat rasterisasi. Setelah operasi ini, nilai setiap lokasi piksel dalam buffer akan sama dengan jumlah objek yang melintasi piksel tersebut di layar.

Salah satu kegunaan paling populer untuk penyangga stensil adalah menciptakan bayangan volume. Ini dapat dilakukan dengan terlebih dahulu merender pemandangan dengan pencahayaan yang sangat redup sehingga semuanya tampak berbayang. Selanjutnya, perhitungan dibuat untuk menentukan lokasi semua permukaan poligon dalam pemandangan yang diterangi oleh sumber cahaya, dan bentuk-bentuk ini ditransfer ke buffer stensil. Adegan dirender kembali seolah-olah setiap objek sepenuhnya menyala dan dicampur melalui bentuk stensil ke adegan berbayang, secara efektif menciptakan gambar yang tampak berisi objek dengan bayangan.