Войти
ПрограммированиеФорумГрафика

Прозрачность текстур

#0
16:34, 1 мар. 2011

Рисую поверх сцены прямоугольник с текстурой. Формат вершин D3DFVF_XYZRHW.
Для прозрачности устанавливаю статы таким образом:

  device->SetRenderState(D3DRS_DESTBLEND,  D3DBLEND_INVSRCALPHA);
  device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);

  device->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
  device->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE ); 
  device->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE );
  device->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
  device->SetTextureStageState( 0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE );
  device->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_MODULATE );

У меня тестовая картинка - желтый фон с синим квадратом. Почему-то белый объект под картинкой окрашивается в желтый цвет. Причем не важно где я этот объект располагаю. Подскажите, где может быть ошибка.


#1
17:24, 1 мар. 2011

Что-то я долго думал, в чем дело. Забыл сбросит текстуру перед рисованием объектов сцены. :)

ПрограммированиеФорумГрафика

Тема в архиве.