Um einen Spiegel zu erstellen gibt es eine weitere Technik, den
StencilBuffer. Grundlage der Spiegelung ist der doppelte Rendervorgang der Szene.
Eine Plane legt dabei fest wo die Spiegelung stattfindet. Aus der Plane wird eine
ReflectionMatrix erstellt, die die Szene gespiegelt
rendert. Da die gespiegelte Szene aber keine Begrenzung hat, wird über dem StencilBuffer eine Maske erstellt.
Es werden vorher die Spiegelnden Objekte in den StencilBuffer
gerendert. Jeder gezeichnete Pixel erstellt im StencilBuffer den Wert „1“.
Anschließend wird die Szene gerendert. Überall dort wo der
StencilBuffer den Wert „1“ beinhaltet wird der Backbuffer überschrieben.
Somit ist die gespiegelte Szene nur im maskierten Bereich vorhanden.
Der StencilBuffer ist etwas komplexer in der Handhabung, aber wesentlich flexibler wie
Clipplanes und eignet sich nicht nur für rechtwinklige Geometrien. Eine ideale Anwendung wäre spiegelndes Wasser.
Hinweis
Um dieses Projekt ausführen zu können, muss
VB.Net 2008, die sdxBaseEngine und
die SlimDX-Runtime installiert sein. Haben Sie Fragen zu einem Projekt, wenden Sie sich bitte immer
zuerst an den entsprechenden Autor. Für weitere Fragen zu Visual Basic
SlimDX nutzen Sie bitte unser DirectX-Forum.