Излучающее освещение (Direct3D 9)
Излучаемое освещение описывается одним условием.
Излучаемое освещение = Cₑ
Где:
Параметр | Значение по умолчанию | Тип | Описание |
---|---|---|---|
Cₑ | (0,0,0,0) | D3DCOLORVALUE | Излучаемый цвет. |
Значение Cₑ равно:
- vertex color1, if EMISSIVEMATERIALSOURCE = D3DMCS_COLOR1, и первый цвет вершины указан в объявлении вершины.
- цвет вершины2, если EMISSIVEMATERIALSOURCE = D3DMCS_COLOR2, а второй цвет вершины указан в объявлении вершины.
- испускающий цвет материала
Примечание
Если используется один из вариантов EMISSIVEMATERIALSOURCE, а цвет вершины не указан, используется испускающий цвет материала.
Пример
В этом примере объект окрашен с помощью внешнего света сцены и внешнего цвета материала. Код показан ниже.
// 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);
Согласно уравнению, полученный цвет вершин объекта — это цвет материала.
На следующей иллюстрации показан цвет материала, то есть зеленый. Излучаемый свет освещает все вершины объекта одним и тем же цветом. Это не зависит от нормали вершины или направления света. В результате сфера выглядит как двухмерный круг, поскольку затенение вокруг поверхности объекта одинаковое.
На следующем рисунке показано, как испускающий свет смешивается с другими тремя типами огней из предыдущих примеров. С правой стороны сферы смешиваются зеленое излучаемое и красное внешнее освещение. С левой стороны сферы зеленое излучаемое освещение смешивается с красным внешним и рассеянным освещением, в результате чего получается красный градиент. Вокруг светового блика в центре появилось желтое кольцо, так как значение отраженного света резко падает, оставляя значения внешнего, рассеянного и излучаемого освещения, которые при смешении дают желтый цвет.
Связанные темы