Şablon tamponunun amacı nedir? Daha doğrusu, bilgisayar grafiğindeki şablon nedir?


41

Şablon kelimesini çok okudum ve bilgisayar grafiğindeki asıl amacının ne olduğu hakkında hiçbir fikrim yok.

Resmi siyah beyaz olarak wikipedia'da görünce, hala sorun yaşıyorum.

Neden bir şablon veya bir şablon tampon kullanıyoruz ve Z tamponundaki fark nedir? Grafik tasarımda bir anlamı var gibi görünen bu sözcüğü neden kullanıyorsunuz?


Harika bir soru, tek bildiğim gölgeleri oluşturmak için kullanıldığı ... Ama bunun tam bir açıklamasını duymakla ilgileneceğim!
Ricket

Yanıtlar:


40

Orijinal enkarnasyonunda, bir şablon tamponu, piksel başına bir bit (yani siyah veya beyaz, ancak griler yok) bir çerçeve oluşturucusuydu. Başka herhangi bir framebuffer gibi ne istersen yapabilirsin. Ardından, daha sonra, düzenli arabellek çizerken bu şablonun içeriğini "şablon" olarak kullanmak veya gizlemek için kullanabilirsiniz.

Örnek: Diyelim ki sürüş oyunu yapıyorsunuz. Ekranda arabanın arkasında ne olduğunu gösteren küçük bir dikiz aynası olmasını istersiniz. Arabanın arkasını işaret eden bir görünüm vermeniz gerekir, ancak bunu yalnızca dikiz aynasının küçük yuvarlatılmış dikdörtgeninde oluşturmak istiyorsunuz. Tipik çözüm:

  1. Yuvarlatılmış dikdörtgen şeklini şablon tamponuna işleyin.
  2. Şablonlamayı etkinleştir.
  3. Geriye dönük işaret görünümünü normal tamponun üzerine yerleştirin.

Şablon daha sonra maskeleyecektir, böylece sadece ayna şeklini çizersiniz.

Artık boru hatları çok daha esnek ve programlanabilir hale getirildiğinden, şablon tamponları istediğiniz her şeyi yapabileceğiniz genel bir 1-bit çerçeve olarak kullanılır. Gölgeler yaygın bir kullanım durumudur.


10
Başka bir deyişle, temel olarak mürekkep uygularken parçaları maskeleyen gerçek bir yaşam kalıbı şablonuyla aynı işleve sahiptir.
Kaj,

4
Bugünlerde hemen hemen tüm cihazlar 8 bitlik bir şablon tamponunu desteklemektedir.
Chris Howe

Örneğini gerçekten anlamadım, sanki ikinci bir sıkıntı var gibi mi? Sahnenin başka bir bölümünü rasterleştirir mi? Gölgelerle bir örnek verebilir misiniz?
jokoon

Bu sadece ikinci bir çerçeve tamponu. Hayal kırıklığını her zaman değiştirmeden önce değiştirebilirsiniz (gölge sistemlerinin yaptıklarını düşünüyorum), ancak bu temel kavramın bir parçası değildir.
munificent

9

İnsanların daha önce tartıştıkları şablon tamponlarının işlevsel kullanımına ek olarak, şablon tamponları da optimizasyon için kullanılabilir.

Şablon testinin grafik boru hattındaki ( piksel gölgelemeden önceki ) konumu nedeniyle, şablon testi, gerekmediğinde ağır gölgelendirme işi yapan pikselleri öldürmek için kullanılabilir. Genellikle bu, örneğin tek bir pikselden daha kaba bir granülerlikte yapılabilir. bir piksel döşemesi, bu nedenle kaba rasterleştirme aşamalarında da iş sık sık kaldırılabilir.


4

Çokgenler oluşturulduğunda hangi piksellerin değiştirilebileceğini kontrol eden sadece bir tampon. Her piksel için, karşılık gelen bir şablon değeri vardır ve pikseller bu değerlere bağlı olarak koşullu olarak değiştirilebilir / yoksayılabilir

En basitinde, fiziksel bir şablon gibi kullanılabilir - bazı piksellerin geçmesine izin veren ve değiştirilen diğer piksellerin durmasını sağlayan bir maske.

Davranışta z-buffer benzeri derinlik testine çok benzer, şablon testi doğru / yanlış bir testtir ve şablon testini kontrol etmek için benzer ayarlar vardır (eğer daha büyük / daha az / eşitse). Ancak derinlik yazmak yerine, genellikle üzerine yazılmış önceden tanımlanmış değerlere sahip olacak veya şablon gölge algoritmalarında kullanıldığı gibi piksel çekildiğinde artırılacak / azaltılacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.