Delen via


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.

vergelijking van lineaire mist met direct3d

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.

vergelijking van direct3d exponentiële mist

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.

vergelijking van direct3d exponentieel 2 mist

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.

grafiek van de mistformules over afstand en de hoeveelheid kleur

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.

vergelijking van misteffecten voor direct3d

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.

Misttypen