Delen via


Mist (Direct3D 9)

Het toevoegen van mist aan een 3D-scène kan het realisme verbeteren, sfeer bieden of een stemming instellen, en verborgen artefacten die soms worden veroorzaakt wanneer verre geometrie in beeld komt. Direct3D ondersteunt twee mistmodellen, pixelmist en hoekpuntmist, elk met zijn eigen kenmerken en programmeerinterface.

In wezen wordt mist geïmplementeerd door de kleur van objecten in een scène te combineren met een gekozen mistkleur op basis van de diepte van een object in een scène of de afstand van het uitkijkpunt. Naarmate objecten verder weg groeien, mengt hun oorspronkelijke kleur zich steeds meer met de gekozen mistkleur, waardoor de illusie ontstaat dat het object steeds meer wordt bedekt door kleine deeltjes die in de scène zweven. In de volgende afbeelding ziet u een scène die zonder mist wordt weergegeven en een vergelijkbare scène met mist ingeschakeld.

illustratie van dezelfde scène met en zonder mist

In deze afbeelding heeft de scène aan de linkerkant een duidelijke horizon, waarbuiten geen landschap zichtbaar is, ook al zou het zichtbaar zijn in de echte wereld. De scène aan de rechterkant bedekt de horizon met behulp van een mistkleur die identiek is aan de achtergrondkleur, waardoor veelhoeken lijken te vervagen in de afstand. Door discrete misteffecten te combineren met creatief scèneontwerp kunt u stemming toevoegen en de kleur van objecten in een scène verzachten.

Direct3D biedt twee manieren om mist toe te voegen aan een scène: pixelmist en hoekpuntmist, genaamd hoe de misteffecten worden toegepast. Zie Pixel Fog (Direct3D 9) en Vertex Fog (Direct3D 9)voor meer informatie. Kortom, pixel mist - ook wel tafelmist genoemd - wordt geïmplementeerd in het apparaatstuurprogramma en hoekpunt mist wordt geïmplementeerd in de Direct3D verlichtingsmotor. Een toepassing kan mist implementeren met een hoekpunt-shader en pixelmist tegelijk indien gewenst.

Notitie

Ongeacht of u pixel- of hoekpuntmist gebruikt, moet uw toepassing een compatibele projectiematrix bieden om ervoor te zorgen dat misteffecten correct worden toegepast. Deze beperking geldt zelfs voor toepassingen die de Direct3D-transformatie- en verlichtingsmotor niet gebruiken. Zie Projectietransformatie (Direct3D 9)voor meer informatie over hoe u een geschikte matrix kunt opgeven.

 

De volgende onderwerpen introduceren mist en presenteren informatie over het gebruik van verschillende mistfuncties in Direct3D-toepassingen.

Mistmenging wordt geregeld door renderstatussen; het maakt geen deel uit van de programmeerbare pixelpijplijn.

Direct3D Rendering-