Наложение альфа-текстур (Direct3D 9)
Механизм освещения объединяет цвет материала, цвет вершин и информацию о освещении для создания цвета для каждой вершины. После интерполяции создается цвет для каждого пикселя, который записывается в буфер кадров. Если приложение включает наложение текстур, цвет пикселей станет сочетанием текущего пикселя в буфере кадров и цвета текстуры.
Эта формула определяет окончательный цвет смешивания пикселей:
Color = TexelColor x SourceBlend + CurrentPixelColor x DestBlend
Где:
- Color — это цвет выходного пикселя.
- TexelColor — это входной цвет после фильтрации текстуры.
- SourceBlend — это процент конечного цвета пикселя, который состоит из исходного цвета текселя.
- CurrentPixelColor — это цвет текущего пикселя.
- DestBlend — это процент окончательного цвета пикселя, который состоит из текущего цвета пикселя.
Окончательное уравнение смешения задается путем вызова метода IDirect3Ddevice9::SetRenderState и указания состояния отображения смешения (D3DRS_BLENDXXX) с соответствующим коэффициентом смешения (D3DBLEND). Значения SourceBlend и DestBlend варьируются от 0,0 (прозрачный) до 1,0 (непрозрачный) включительно. Кроме того, приложение может управлять прозрачностью пикселя, задавая альфа-значение в текстуре. В этом случае используйте следующее:
SourceBlend = D3DBLEND_ZERO
DestBlend = D3DBLEND_ONE
Уравнение смешения приведет к тому, что отображаемый пиксель будет прозрачным. Значения по умолчанию:
SourceBlend = D3DBLEND_SRCALPHA
DestBlend = D3DBLEND_INVSRCALPHA
Связанные темы