Delen via


Decaleren (Direct3D 9)

Direct3D-toepassingen gebruiken schaalaanpassing om te bepalen welke pixels van een bepaalde primitieve afbeelding worden getekend op het renderingdoeloppervlak. Toepassingen brengen decals aan op de afbeeldingen van primitieve vormen om ervoor te zorgen dat coplanaire polygonen correct worden weergegeven.

Wanneer u bijvoorbeeld bandenmarkeringen en gele lijnen toepast op een weg, moeten de markeringen direct boven op de weg worden weergegeven. De z-waarden van de markeringen en de weg zijn echter hetzelfde. Daarom kan de dieptebuffer geen schone scheiding tussen de twee produceren. Sommige pixels in de achterste primitieve worden mogelijk weergegeven boven op de voorste primitieve en omgekeerd. De resulterende afbeelding lijkt van frame naar frame te shimmeren. Dit effect wordt z-fighting of flimmerengenoemd.

Om dit probleem op te lossen, gebruikt u een stencil om het gedeelte van de achterkant van de primitieve vorm te maskeren waar de afbeelding zal verschijnen. Schakel z-buffering uit en render de afbeelding van het voorste object in het gemaskeerde gebied van de doelsurface.

Hoewel meerdere textuurmixen kunnen worden gebruikt om dit probleem op te lossen, beperkt u hiermee het aantal andere speciale effecten dat uw toepassing kan produceren. Als u de stencilbuffer gebruikt om decals toe te passen, komen textuurmixfasen vrij voor andere effecten.

Stencil-buffertechnieken