Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Gebruik het spot-specular verlichtingseffect om een afbeelding te maken die een reflecterend oppervlak lijkt te zijn waarbij de lichtbron beperkt is tot een gerichte kegel van licht. Dit effect gebruikt het alfakanaal als een hoogtekaart en licht de afbeelding aan met een puntlichtbron.
De kleur van de uitvoerbitmap is het resultaat van de lichtkleur, lichtpositie, de richting van de kegel en de oppervlakte-geometrie volgens het speculaire deel van het Phong-verlichtingsmodel. De alfakanaaluitvoer voor elke pixel met speculatieve belichting is het maximum van de rode, groene en blauwe kanaaluitvoer voor die pixel.
De CLSID voor dit effect is CLSID_D2D1SpotSpecular.
- voorbeeldafbeelding
- Spotlichtbron
- eigenschappen van effect
- schaalinstellingen
- vereisten
- Verwante onderwerpen
Voorbeeldafbeelding
In het voorbeeld ziet u de invoer- en uitvoerafbeeldingen van het spot-speculair verlichtingseffect.
Het speculaire licht verwijst naar licht dat in een bepaalde richting wordt weerspiegeld.
Het effect berekent de uiteindelijke waarden van de uitvoer pixel met behulp van de vergelijkingen hier.
waar
Spotlichtbron
Een spotlichtbron straalt licht uit in een kegel in een specifieke richting en straalt geen licht uit buiten de kegel.
De spotlichtbron berekent de Lichtvector L en de Halfway Vector H op dezelfde manier als het punt-speculair effect.
Het effect berekent de lichtkleur, Lr, Lg, Lb, als functie van de positie van de lichtbron, zoals wordt weergegeven met de vergelijkingen hier:
De vector wordt gedefinieerd door deze vergelijkingen:
De vector wordt gedefinieerd door deze vergelijkingen:
Effecteigenschappen
Weergavenaam en indexlijst | Beschrijving |
---|---|
LightPosition D2D1_SPOTSPECULAIR_PROP_LICHT_POSITIE |
De lichtpositie van de puntlichtbron. De eigenschap is een D2D1_VECTOR_3F gedefinieerd als (x, y, z). De eenheden bevinden zich in apparaatonafhankelijke pixels (DIPs) en zijn niet gebonden. Het type is D2D1_VECTOR_3F. De standaardwaarde is {0.0f, 0.0f, 0.0f}. |
PointsAt D2D1_SPOTSPECULAR_PROP_POINTS_AT |
Waar het spotlicht gericht is. De eigenschap wordt weergegeven als een D2D1_VECTOR_3F met (x, y, z). De eenheden bevinden zich in DIPs en de waarden zijn niet gebonden. Het type is D2D1_VECTOR_3F. De standaardwaarde is {0.0f, 0.0f, 0.0f}. |
Focus D2D1_SPOTSPECULAR_PROP_FOCUS |
De focus van het spotlicht. Deze eigenschap is eenheidloos en is gedefinieerd tussen 0 en 200. Het type is FLOAT. De standaardwaarde is 1,0f. |
LimitingConeAngle D2D1_SPOT_SPECULAR_PROP_LIMITING_CONE_ANGLE |
De kegelhoek die het gebied beperkt waar het licht wordt geprojecteerd. Er wordt geen licht geprojecteerd buiten de kegel. De beperkende hoek van de kegel is de hoek tussen de spotlicht as (de as tussen de LightPosition en PointsAt eigenschappen) en de spotlichtkegel. Deze eigenschap is gedefinieerd in graden en moet tussen 0 en 90 graden zijn. Het type is FLOAT. De standaardwaarde is 90,0f. |
SpecularExponent D2D1_SPOTSPECULAR_PROP_SPECULAR_EXPONENT |
De exponent voor de speculaire term in de Phong verlichtingsvergelijking. Een grotere waarde komt overeen met een reflecterend oppervlak. Deze waarde is eenheidloos en moet tussen 1,0 en 128 zijn. Het type is FLOAT. De standaardwaarde is 1,0f. |
SpecularConstant D2D1_SPOTSPECULAR_PROP_SPECULAR_CONSTANT |
De verhouding van speculatieve reflectie tot het binnenkomende licht. De waarde is eenheidloos en moet tussen 0 en 10.000 zijn. Het type is FLOAT. De standaardwaarde is 1,0f. |
SurfaceScale D2D1_SPOTSPECULAR_PROP_SURFACE_SCALE |
De schaalfactor in de Z-richting voor het genereren van een hoogtekaart. De waarde is eenheidloos en moet tussen 0 en 10.000 zijn. Het type is FLOAT. De standaardwaarde is 1,0f. |
Kleur D2D1_SPOTSPECULAR_PROP_COLOR |
De kleur van het binnenkomende licht. Deze eigenschap wordt weergegeven als een vector 3 (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_SPOTSPECULAR_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 waarden dx en dy in de Sobel-gradiënt. Deze eigenschap is een D2D1_VECTOR_2F (Lengte van kerneleenheid X, Lengte van kerneleenheid Y) en is gedefinieerd in (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}. |
ScaleMode D2D1_SPOTSPECULAR_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. Zie Schaalmodi voor meer informatie. Het type is D2D1_SPOTSPECULAR_SCALE_MODE. De standaardwaarde is D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR. |
Schaalopties
Opsomming | Beschrijving |
---|---|
D2D1_SPOTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR | Maakt een steekproef van het dichtstbijzijnde enkel punt en gebruikt dat. In deze modus wordt minder verwerkingstijd gebruikt, maar wordt de afbeelding van de laagste kwaliteit uitgevoerd. |
D2D1_SPOTSPECULAR_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_SPOTSPECULAR_SCALE_MODE_CUBIC | Maakt gebruik van een kubieke kernel met 16 samples voor interpolatie. In deze modus wordt de meeste verwerkingstijd gebruikt, maar wordt een afbeelding met een hogere kwaliteit uitgevoerd. |
D2D1_SPOTSPECULAR_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_SPOTSPECULAR_SCALE_MODE_ANISOTROPIC | Maakt gebruik van anisotropische filtering om een patroon te steekproefen op basis van de getransformeerde vorm van de bitmap. |
D2D1_SPOTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC | Maakt gebruik van een kubieke kernel met variabele grootte van hoge kwaliteit om de afbeelding vooraf te downscalen als er omschaling betrokken is in de transformatiematrix. Vervolgens wordt de kubieke interpolatiemodus gebruikt voor de uiteindelijke uitvoer. |
Notitie
Als u geen modus selecteert, wordt het effect standaard D2D1_SPOTSPECULAR_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] |
Rubriek | d2d1effects.h |
Bibliotheek | d2d1.lib, dxguid.lib |