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 verre speculaire verlichtingseffect om een afbeelding te maken die eruitziet als een reflecterend oppervlak, waarbij de lichtbron lijkt te komen van een grote afstand (zoals de zon of plafondlichten). Dit effect gebruikt het alfakanaal als hoogtekaart en licht de afbeelding aan met een verre lichtbron.
De kleur van de uitvoerbitmap wordt beïnvloed door de kleur van het licht, de positie van het licht en de geometrie van het oppervlak. 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_D2D1DistantSpecular.
- voorbeeldafbeelding
- lichtbron van afstand
- Effecteigenschappen
- schaalmodi
- vereisten
- Verwante onderwerpen
Voorbeeldafbeelding
In het voorbeeld ziet u de invoer- en uitvoerafbeeldingen van het verre-speculaire verlichtingseffect.
De uiteindelijke uitvoer bitmap kan worden berekend met behulp van de volgende vergelijkingen.
waar
- k? = speculaire verlichtingsconstante.
= oppervlaktenormale eenheidsvector.
= "halverwege" eenheidsvector tussen de eenheidsvector van het oog en de eenheidsvector van het licht.Cr, Cg, Cb = de lichte kleur in RGB-onderdelen.
Afstandslichtbron
In de afbeelding ziet u een voorbeeld van de richting van het licht van een verre lichtbron.
Het effect gebruikt de azimuth- en hoogteparameters om de lichtvector te berekenen
met behulp van de volgende vergelijkingen:
where Light?, Lightyen Lightz zijn de waarden voor de positie van het invoerlicht.
Effecteigenschappen
| Weergavenaam en index-enumeratie | Beschrijving |
|---|---|
| Azimut D2D1_DISTANTSPECULAR_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_DISTANTSPECULAR_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. |
| SpecularExponent D2D1_DISTANTSPECULAR_PROP_SPECULAR_EXPONENT |
De exponent voor de speculaire term in de Phong verlichtingsvergelijking. Een grotere waarde komt overeen met een reflecterend oppervlak. De waarde is eenheidloos en moet tussen 1,0 en 128 zijn. Het type is FLOAT. De standaardwaarde is 1,0f. |
| SpecularConstant D2D1_DISTANTSPECULAR_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_DISTANTSPECULAR_PROP_SURFACE_SCALE |
De schaalfactor in de Z-richting. De waarde is eenheidloos en moet tussen 0 en 10.000 zijn. Het type is "FLOAT". De standaardwaarde is 1,0f. |
| Kleur D2D1_DISTANTSPECULAR_PROP_COLOR (kleurinstelling voor verre speculaire effecten) |
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}. |
| KernelEenheidsLengte D2D1_DISTANTSPECULAR_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 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_DISTANTSPECULAR_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_DISTANTSPECULAR_SCALE_MODE. De standaardwaarde is D2D1_DISTANTSPECULAR_SCALE_MODE_LINEAR. |
Schaalmodi
| Opsomming | Beschrijving |
|---|---|
| D2D1_DISTANTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR | Bemonstert het dichtstbijzijnde enkele punt en gebruikt dat. In deze modus wordt minder verwerkingstijd gebruikt, maar wordt de afbeelding van de laagste kwaliteit uitgevoerd. |
| D2D1_DISTANTSPECULAR_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_DISTANTSPECULAR_SCALE_MODE_CUBIC | Maakt gebruik van een kubische kern met 16 monsters voor interpolatie. In deze modus wordt de meeste verwerkingstijd gebruikt, maar wordt een afbeelding met een hogere kwaliteit uitgevoerd. |
| D2D1_DISTANTSPECULAR_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_DISTANTSPECULAR_SCALE_MODE_ANISOTROPIC | Maakt gebruik van anisotropische filtering om een patroon te steekproefen op basis van de getransformeerde vorm van de bitmap. |
| D2D1_DISTANTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC | Maakt gebruik van een variabel formaat cubic kernel van hoge kwaliteit om de afbeelding vooraf te verkleinen als verkleining plaatsvindt in de transformatiematrix. Vervolgens wordt de kubieke interpolatiemodus gebruikt voor de uiteindelijke uitvoer. |
Notitie
Als u geen modus kiest, wordt het effect standaard ingesteld op D2D1_DISTANTSPECULAR_SCALE_MODE_LINEAR.
Eisen
| Eis | 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 |