Delen via


Afstandsdiffuus lichteffect

Gebruik het effect van de verre diffuse verlichting om een afbeelding te maken die een niet-reflecterend oppervlak lijkt te zijn waarbij de lichtbron afkomstig lijkt te zijn van een lange afstand (zoals de zon of overheadlichten) en het licht in alle richtingen verspreid is. Dit effect gebruikt het alfakanaal als hoogtekaart en licht de afbeelding aan met een verre lichtbron.

De kleur van de uitvoerbitmap is het resultaat van lichtkleur, lichtpositie en de oppervlaktegeometrie van de afbeelding. De alfakanaaluitvoer voor elke pixel met diffuse verlichting is altijd 1,0.

De CLSID voor dit effect is CLSID_D2D1DistantDiffuse.

Voorbeeldafbeelding

In het voorbeeld ziet u de in- en uitvoerafbeeldingen van het veraf-diffuse verlichtingseffect.

voorbeeldschermopname van de invoer- en uitvoerafbeeldingen van het verre diffuse verlichtingseffect.

Effecteigenschappen

Weergavenaam en indexlijst Beschrijving
Azimut
D2D1_DISTANTDIFFUSE_PROP_AZIMUTH
De richtingshoek van de lichtbron in het XY-vlak ten opzichte van de X-as in de richting van de tellerklok. De eenheden bevinden zich in graden en moeten tussen 0 en 360 graden liggen.
Het type is FLOAT.
De standaardwaarde is 0,0f.
Hoogte
D2D1_DISTANTDIFFUSE_PROP_ELEVATION
De richtingshoek van de lichtbron in het YZ-vlak ten opzichte van de Y-as tegen de klok in. De eenheden bevinden zich in graden en moeten tussen 0 en 360 graden liggen.
Het type is FLOAT.
De standaardwaarde is 0,0f.
DiffuseConstant
D2D1_DISTANTDIFFUSE_PROP_DIFFUSE_CONSTANT
De verhouding van diffuse weerspiegeling tot de hoeveelheid binnenkomend licht. Deze eigenschap moet tussen 0 en 10.000 zijn en is eenheidloos.
Het type is FLOAT.
De standaardwaarde is 1,0f.
SurfaceScale
D2D1_DISTANTDIFFUSE_PROP_SURFACE_SCALE
De schaalfactor in de Z-richting. De oppervlakteschaal is unitloos en moet tussen 0 en 10.000 zijn.
Het type is FLOAT.
De standaardwaarde is 1,0f.
Kleur
D2D1_DISTANTDIFFUSE_PROP_COLOR
De kleur van het binnenkomende licht. Deze eigenschap wordt weergegeven als een D2D1_VECTOR_3F (R, G, B) en wordt gebruikt voor het berekenen van LR, LG, LB.
Het type is D2D1_VECTOR_3F.
De standaardwaarde is {1.0f, 1.0f, 1.0f}.
KernelUnitLength
D2D1_DISTANTDIFFUSE_PROP_KERNEL_UNIT_LENGTH
De grootte van een element in de Sobel-kernel die wordt gebruikt om het oppervlak normaal te genereren in de X- en Y-richting. Deze eigenschap komt overeen met de dx- en dy-waarden in de Sobel-gradiënt. Deze eigenschap is een D2D1_VECTOR_2F (Kernel Unit Length X, Kernel Unit Length Y) en is gedefinieerd in (apparaatonafhankelijke pixels (DIPs)/Kernel Unit). Het effect maakt gebruik van bilineaire interpolatie om de bitmap te schalen zodat deze overeenkomt met de grootte van kernelelementen.
Het type is D2D1_VECTOR_2F.
De standaardwaarde is {1.0f, 1.0f}.
Schaalmodus
D2D1_DISTANTDIFFUSE_PROP_SCALE_MODE
De interpolatiemodus die het effect gebruikt om de afbeelding te schalen naar de bijbehorende lengte van de kerneleenheid. Er zijn zes schaalmodi die variëren in kwaliteit en snelheid.
Het type is D2D1_DISTANTDIFFUSE_SCALE_MODE.
De standaardwaarde is D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR.

Schaalmodi

Opsomming Beschrijving
D2D1_DISTANTDIFFUSE_SCALE_MODE_NEAREST_NEIGHBOR Bemonstert het dichtstbijzijnde enkel punt en gebruikt dat. In deze modus wordt minder verwerkingstijd gebruikt, maar wordt de afbeelding van de laagste kwaliteit uitgevoerd.
D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR Maakt gebruik van een voorbeeld van vier punten en lineaire interpolatie. Deze modus voert een afbeelding van een hogere kwaliteit uit dan dichtstbijzijnde buur.
D2D1_DISTANTDIFFUSE_SCALE_MODE_CUBIC Maakt gebruik van een kubieke kern met 16 monsters voor interpolatie. In deze modus wordt de meeste verwerkingstijd gebruikt, maar wordt een afbeelding met een hogere kwaliteit uitgevoerd.
D2D1_DISTANTDIFFUSE_SCALE_MODE_MULTI_SAMPLE_LINEAR Maakt gebruik van vier lineaire steekproeven binnen één pixel voor goede rand antialiassen. Deze modus is geschikt voor het omlaag schalen met kleine hoeveelheden afbeeldingen met een paar pixels.
D2D1_DISTANTDIFFUSE_SCALE_MODE_ANISOTROPIC Maakt gebruik van anisotropische filtering om een patroon te steekproefen op basis van de getransformeerde vorm van de bitmap.
D2D1_DISTANTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC Maakt gebruik van een kubieke kernel van hoge kwaliteit met variabele grootte om de afbeelding vooraf te verkleinen als verkleining wordt toegepast in de transformatiematrix. Vervolgens wordt de kubieke interpolatiemodus gebruikt voor de uiteindelijke uitvoer.

Notitie

Als u geen modus selecteert, wordt het effect standaard ingesteld op D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR.

Eisen

Vereiste Waarde
Minimaal ondersteunde client Windows 8 en Platform Update voor Windows 7 [desktop-apps | Windows Store-apps]
Minimaal ondersteunde server Windows 8 en Platform Update voor Windows 7 [desktop-apps | Windows Store-apps]
Koptekst d2d1effects.h
Bibliotheek d2d1.lib, dxguid.lib

ID2D1Effect