Emissiv belysning (Direct3D 9)
Emitterande belysning beskrivs med ett enda begrepp.
Emissiv belysning = Cₑ
Var:
Parameter | Standardvärde | Typ | Beskrivning |
---|---|---|---|
Cₑ | (0,0,0,0) | D3DCOLORVALUE | Emissiv färg. |
Värdet för Cₑ är antingen:
- hörnfärg1, om EMISSIVEMATERIALSOURCE = D3DMCS_COLOR1, och den första hörnfärgen anges i hörndeklarationen.
- hörnfärg2, om EMISSIVEMATERIALSOURCE = D3DMCS_COLOR2, och den andra hörnfärgen anges i hörndeklarationen.
- emitterande färg för material
Not
Om något av alternativen EMISSIVEMATERIALSOURCE används och vertexfärgen inte anges används materialets emitterande färg.
Exempel
I det här exemplet färgas objektet med hjälp av scenens omgivande ljus och en material omgivande färg. Koden visas nedan.
// create material
D3DMATERIAL9 mtrl;
ZeroMemory( &mtrl, sizeof(mtrl) );
mtrl.Emissive.r = 0.0f;
mtrl.Emissive.g = 0.75f;
mtrl.Emissive.b = 0.0f;
mtrl.Emissive.a = 0.0f;
m_pd3dDevice->SetMaterial( &mtrl );
m_pd3dDevice->SetRenderState(D3DRS_EMISSIVEMATERIALSOURCE, D3DMCS_MATERIAL);
Enligt ekvationen är den resulterande färgen för objekthörnarna materialfärgen.
Följande bild visar materialfärgen, som är grön. Emissivt ljus belyser alla objektets hörn med samma färg. Det är inte beroende av vertexnormen eller ljusriktningen. Därför ser sfären ut som en 2D-cirkel eftersom det inte finns någon skillnad i skuggning runt objektets yta.
Följande bild visar hur det utstrålande ljuset blandas med de andra tre typerna av ljus, från de tidigare exemplen. På höger sida av sfären finns en blandning av det grönt emitterande och det röda omgivande ljuset. På vänster sida av sfären blandas det gröna emitterande ljuset med rött omgivande och diffust ljus, vilket skapar en röd gradient. Den spekulära höjdpunkten är vit i mitten och skapar en gul ring när det spekulära ljusvärdet faller kraftigt och lämnar de omgivande, diffusa och emitterande ljusvärdena som blandas för att bilda gult.
Relaterade ämnen