Mistformules (Direct3D 9)
C++-toepassingen kunnen bepalen hoe mist van invloed is op de kleur van objecten in een scène door te wijzigen hoe Microsoft Direct3D misteffecten over afstand berekent. Het D3DFOGMODE geïnventariseerd type bevat leden die de drie mistformules identificeren. Alle formules berekenen een mistfactor als een functie van afstand, op basis van parameters die door uw toepassing worden ingesteld.
Lineaire mist
Dit wordt ingesteld met de volgende D3DFOG_LINEAR vergelijking.
waar
- start is de afstand waarop misteffecten beginnen.
- eind is de afstand waarop misteffecten niet langer toenemen.
- d vertegenwoordigt diepte of de afstand van het uitkijkpunt. Voor op bereik gebaseerde mist is de waarde voor d de afstand tussen de camerapositie en een hoekpunt. Voor mist buiten bereik is de waarde voor d de absolute waarde van de Z-coördinaat in de cameraruimte.
Exponentiële mist
Lineaire en exponentiële formules worden ondersteund voor zowel pixelmist als hoekpuntmist.
Dit is ingesteld met de volgende D3DFOG_EXP vergelijking.
waar
- e is de basis van natuurlijke logaritmen (ongeveer 2,71828).
- dichtheid is een willekeurige mistdichtheid die kan variëren van 0,0 tot 1,0.
- d vertegenwoordigt diepte of de afstand van het standpunt, zoals eerder vermeld.
Dit is ingesteld met de volgende D3DFOG_EXP2 vergelijking.
waar
- e is de basis van natuurlijke logaritmen zoals hierboven vermeld.
- dichtheid is een willekeurige mistdichtheid die kan variëren van 0,0 tot 1,0 zoals hierboven vermeld.
- d vertegenwoordigt diepte of de afstand van het uitkijkpunt, zoals hierboven vermeld.
Notitie
Het systeem slaat de mistfactor op in het alfa-onderdeel van de speculaire kleur voor een hoekpunt. Als uw toepassing zijn eigen transformatie en verlichting uitvoert, kunt u mistfactorwaarden handmatig invoegen om tijdens de rendering door het systeem te worden toegepast.
In de volgende grafiek ziet u deze formules, waarbij algemene waarden worden gebruikt zoals in de formuleparameters.
D3DFOG_LINEAR is 1,0 aan het begin en 0,0 aan het einde. Het wordt niet gemeten ten opzichte van de nabij- of verre vliegtuigen.
Wanneer Direct3D misteffecten berekent, wordt de mistfactor uit een van de voorgaande vergelijkingen gebruikt in de volgende combinatievergelijkingsvergelijking.
Deze formule schaalt effectief de kleur van de huidige veelhoek C door de mistfactor f en voegt het product toe aan de mistkleur C, geschaald door de bitsgewijze inverse van de mistfactor. De resulterende kleurwaarde is een mix van de mistkleur en de oorspronkelijke kleur, als factor van afstand. De formule is van toepassing op alle apparaten die worden ondersteund in Microsoft DirectX 7.0 en hoger. Voor het verouderde rampapparaat schaalt de mistfactor de diffuse en speculaire kleurcomponenten, vastgeklemd tot het bereik van 0,0 en 1.0, inclusief. De mistfactor begint meestal bij 1,0 voor het nabije vliegtuig en neemt af tot 0,0 bij het verre vliegtuig.
Verwante onderwerpen