Was ist ein Schablonenpuffer?
Bei der Programmierung von Computergrafiken ist ein Schablonenpuffer ein Speicherbereich, der in Bezug auf andere Grafikpuffer gezeichnet und verwendet werden kann, um unterschiedliche Effekte zu erzielen, oder um 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, sodass während des Renders schnell zugegriffen werden kann.
Das Konzept eines Schablonenpufferangewendet auf eine dreidimensionale (3D) Szene, 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.Puffer, und dann wird die Reflexion durch diese Form gezogen.
Speicherprobleme 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.Während sich die Grafikkarten entwickelten, konnten die meisten Puffer an jedem Pixel -Ort einen vollständigen Bytewert halten, sodass Programmierer komplexere Werte an einem Ort haben können.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 gerendert wird, sodass alles schattiert zu sein scheint.Als nächstes werden Berechnungen durchgeführt, um die Position aller Polygonoberflä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 wäre jedes Objekt vollständig beleuchtet und durch die Schablonenformen auf die schattige Szene gemischt und erstellt effektiv ein Bild, das Objekte mit Schatten enthält.