Was ist ein Schablonenpuffer?
In der Computergrafikprogrammierung ist ein Schablonenpuffer ein Speicherbereich, der in Bezug auf andere Grafikpuffer gezeichnet und verwendet werden kann, um unterschiedliche Effekte zu erzielen oder Bereiche einer Szene zu maskieren, damit sie nicht verarbeitet oder gerendert werden. Ein Schablonenpuffer ist ein Pixelpuffer, der einem Schwarzweißbild ähnelt, bei dem jeder Ort im Puffer einen Wert enthalten kann, der höchstens 1 Byte lang ist, aber höchstens 1 Bit sein kann. Der Puffer wurde ursprünglich als echte oder falsche Maske entwickelt, ähnlich wie eine reale Schablone, sodass Bereiche einer Szene verdeckt oder ignoriert werden können, indem die Werte verschiedener Regionen des Schablonenpuffers auf einen anderen Wert als Null gesetzt werden. Es gibt eine Reihe von Verwendungszwecken für den Puffer, das über die einfache Maskierung hinausgeht, einschließlich des Zeichnens eines Schattenvolumens, der Implementierung von Halos um Objekte oder der Lokalisierung von Bereichen, in denen sich Objekte gegenseitig überlappen. In vielen Fällen wird der Puffer im Grafikspeicher auf einer Grafikkarte aufrechterhalten, damit er während des Renderi schnell zugegriffen werden kannng.
Das Konzept eines Schablonenpuffers war ursprünglich eine Möglichkeit, eine zweidimensionale (2D) Maske zu erstellen, die auf eine dreidimensionale (3D) Szene angewendet werden konnte, während sich die Scheitelpunkte durch die Grafikpipeline bewegten. Wenn der Ort des 3D -Scheitelpunkts, sobald sie rasterisiert wurden, mit einem Bereich des Schablonenpuffers, der nicht auf Null gesetzt wurde, in Bezug auf Null gesetzt wurde, kann dieser Scheitelpunkt ignoriert und der Rest seiner Pipeline -Verarbeitung übersprungen werden. Dies ermöglichte den Programmierern eine Möglichkeit, nur kleine Teile einer Szene zu rendern oder ein Bild in ein unregelmäßig geformtes Aussichtsfenster zu machen, wie z.
Gedächtnisbedenken führten dazu, dass die ursprüngliche Form eines Schablonenpuffers ein Gitter von Einzelbitwerten war, bei dem jedes Pixel im Puffer nur wahr oder falsch sein konnte. Wenn sich Grafikkarten entwickelnED, die meisten Puffer wurden in der Lage, an jedem Pixel -Ort einen vollständigen Bytewert zu halten, sodass Programmierer an einem Ort komplexere Werte haben konnten. Auf diese Weise kann der Puffer verwendet werden, um Bereiche zu erkennen, in denen sich Objekte überlappen, was durch Inkrementierung des Werts des Puffer an einem Ort erfolgen kann, wenn ein Objekt beim Raster dieses Pixel auf dem Bildschirm einnimmt. Nach diesem Vorgang entspricht der Wert jedes Pixelortes im Puffer der Anzahl der Objekte, die dieses Pixel auf einem Bildschirm überqueren.
Eine der beliebtesten Verwendungen für einen Schablonenpuffer ist die Erstellung von Volumenschatten. Dies kann erfolgen, indem zuerst eine Szene mit sehr schwacher Beleuchtung rendert, so dass alles schattiert zu sein scheint. Als nächstes werden Berechnungen durchgeführt, um die Position aller Polygonflächen in der Szene zu bestimmen, die von einer Lichtquelle beleuchtet werden, und diese Formen werden auf den Schablonenpuffer übertragen. Die Szene wird wieder so gerendert, als ob jedes Objekt vollständig beleuchtet wäre und durch die Schablonenformen auf die schattenhafte Szene EF gemischt wird, EFErstellen eines Bildes, das anscheinend Objekte mit Schatten enthält.