Saya banyak membaca kata stensil, dan saya tidak tahu apa tujuan sebenarnya dari grafik komputer.
Melihat gambar hitam putih di wikipedia, saya masih mengalami masalah dengan itu.
Mengapa kita menggunakan buffer stensil atau stensil, dan apa bedanya dengan buffer-Z? Mengapa menggunakan kata ini yang tampaknya memiliki makna dalam desain grafis?
Jawaban:
Dalam inkarnasi aslinya, buffer stensil adalah framebuffer satu bit bit (yaitu hitam atau putih, tetapi tidak ada abu-abu). Anda dapat merendernya apa pun yang Anda inginkan seperti framebuffer lainnya. Kemudian, nanti, Anda bisa menggunakan konten buffer itu untuk "stensil" atau menutupi ketika menggambar ke buffer biasa.
Contoh: Misalkan Anda membuat game mengemudi. Anda ingin memiliki sedikit kaca spion di layar yang menunjukkan apa yang ada di belakang mobil. Anda harus membuat tampilan yang menunjuk ke belakang mobil, tetapi Anda hanya ingin membuatnya dalam bentuk persegi panjang bulat dari kaca spion. Solusi khasnya adalah:
Stensil kemudian akan menutupinya sehingga Anda hanya menggambar bentuk cermin.
Sekarang membuat pipeline jauh lebih fleksibel dan dapat diprogram, buffer stensil hanya digunakan sebagai framebuffer 1-bit generik yang dapat Anda lakukan apa pun yang Anda inginkan. Bayangan adalah kasus penggunaan umum.
sumber
Selain penggunaan fungsional buffer stensil yang sudah dibahas orang, buffer stensil juga dapat digunakan untuk optimisasi.
Karena posisi tes stensil dalam pipa grafis (yang sebelum pixel shading), pengujian stensil dapat digunakan untuk membunuh piksel yang melakukan pekerjaan shading berat ketika mereka tidak diperlukan. Seringkali ini dapat dilakukan pada granularity yang lebih kasar daripada hanya satu pixel saja. ubin piksel, sehingga pekerjaan sering dapat dimusnahkan selama tahap rasterisasi kasar juga.
sumber
Itu hanya buffer yang mengontrol piksel mana yang dapat dimodifikasi saat poligon dirender. Untuk setiap piksel, ada nilai stensil yang sesuai, dan piksel dapat dimodifikasi / diabaikan dengan syarat tergantung pada nilai-nilai ini
Paling sederhana, ini dapat digunakan seperti stensil fisik - topeng yang memungkinkan beberapa piksel masuk, dan menghentikan piksel lainnya yang sedang dimodifikasi.
Ini sangat mirip dalam perilaku dengan z-buffer - seperti pengujian kedalaman, pengujian stensil adalah tes benar / salah, dan ada pengaturan serupa untuk mengontrol tes stensil (lulus jika lebih besar / kurang / sama). Tetapi alih-alih menulis kedalaman untuk itu, biasanya akan memiliki nilai yang ditentukan sebelumnya ditulis untuk itu, atau akan bertambah / dikurangi ketika piksel diambil, seperti yang digunakan dalam algoritma bayangan stensil.
sumber