Freigeben über


Decaling (Direct3D 9)

Direct3D-Anwendungen verwenden Decaling, um zu steuern, welche Pixel aus einem bestimmten primitiven Bild auf die Renderingzieloberfläche gezeichnet werden. Anwendungen wenden Decals auf die Bilder von Grundtypen an, damit coplanare Polygone ordnungsgemäß gerendert werden können.

Bei instance sollten die Markierungen beim Anbringen von Reifenmarkierungen und gelben Linien auf eine Fahrbahn direkt auf der Straße angezeigt werden. Die z-Werte der Markierungen und der Straße sind jedoch identisch. Daher erzeugt der Tiefenpuffer möglicherweise keine sauber Trennung zwischen den beiden. Einige Pixel im hinteren Grundtyp können auf dem vorderen Grundtyp gerendert werden und umgekehrt. Das resultierende Bild scheint von Frame zu Frame zu schimmern. Dieser Effekt wird als Z-Fighting oder Flimmern bezeichnet.

Um dieses Problem zu lösen, verwenden Sie eine Schablone, um den Abschnitt des hinteren Grundtyps zu maskieren, in dem das Abziehzeichen angezeigt wird. Deaktivieren Sie die Z-Pufferung, und rendern Sie das Bild des vorderen Grundtyps in den maskierten Bereich der Renderzieloberfläche.

Obwohl mehrere Texturmischungen verwendet werden können, um dieses Problem zu lösen, begrenzt dies die Anzahl anderer Spezialeffekte, die Ihre Anwendung erzeugen kann. Wenn Sie den Schablonenpuffer zum Anwenden von Abziehabziehern verwenden, werden Texturmischungsphasen für andere Effekte freigegeben.

Schablonenpuffertechniken