Состояние альфа-смешивания (Direct3D 9)
Альфа-значение цвета управляет прозрачностью. Включение альфа-смешивания позволяет смешивать цвета, материалы и текстуры на одной поверхности с прозрачностью для наложения на другую поверхность.
Дополнительные сведения см. в Альфа-текстуры смешивания (Direct3D 9) и Смешивания текстур (Direct3D 9).
Приложения, написанные на языке C++, используют состояние рендеринга D3DRS_ALPHABLENDENABLE для включения альфа-смешивания. API Direct3D позволяет использовать множество типов альфа-смешивания. Однако важно отметить, что трехмерное оборудование пользователя может не поддерживать все состояния смешивания, разрешенные Direct3D.
Тип альфа-смешивания, который выполняется, зависит от состояния D3DRS_SRCBLEND и D3DRS_DESTBLEND состояния рендеринга. Исходные и целевые состояния смешения используются в парах. В следующем примере кода показано, как для исходного состояния смешения задано значение D3DBLEND_SRCCOLOR, а для конечного состояния смешивания задано значение D3DBLEND_INVSRCCOLOR.
// This code example assumes that d3dDevice is a
// valid pointer to an IDirect3DDevice9 interface.
// Set the source blend state.
d3dDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCCOLOR);
// Set the destination blend state.
d3dDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCCOLOR);
Изменение исходных и целевых состояний смешения может дать вид имисивных объектов в туманной или пыльной атмосфере. Например, если приложение моделирует пламя, принудительное поле, плазменные лучи или аналогичные радиатические объекты в туманной среде, задайте исходное и целевое состояния смешения D3DBLEND_ONE.
Еще одним применением альфа-смешивания является управление освещением в трехмерной сцене, также называемое сопоставлением света. Задание исходного состояния смешивания для D3DBLEND_ZERO и конечного состояния смешивания D3DBLEND_SRCALPHA темнеет сцену в соответствии с исходной альфа-информацией. Исходный примитив используется в качестве карты освещения, которая масштабирует содержимое буфера кадра, чтобы затемнить его при необходимости. Это приводит к созданию монохромной карты освещения.
Вы можете достичь сопоставления цветов, задав исходное состояние альфа-смешивания для D3DBLEND_ZERO и конечного состояния смешивания D3DBLEND_SRCCOLOR.
Связанные разделы