Поделиться через


Наложение альфа-текстур (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

Наложение текстур

Фильтрация текстур (Direct3D 9)

D3DRENDERSTATETYPE