Как сделать непрозрачность на моей текстуре в DirectX 9? - PullRequest
1 голос
/ 03 декабря 2011

Я изо всех сил пытался найти решение этой проблемы, но результаты довольно плохие.

По сути, я хочу нарисовать текстуру (она состоит из 2 треугольников, поэтому это квад) и сделать так, чтобы они имели альфа-значения (0-255, но 0-1 тоже подойдет). Это сделано для того, чтобы при желании я мог получить эффект постепенного исчезновения.

1 Ответ

2 голосов
/ 04 декабря 2011

нашел мой ответ: Ссылка на источник

DWORD AlphaValue;
AlphaValue = D3DCOLOR_ARGB(100,255,255,255);

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

mpDevice->SetTextureStageState(0, D3DTSS_CONSTANT, AlphaValue);
mpDevice->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_CONSTANT);
mpDevice->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_DISABLE);
mpDevice->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_DISABLE);

pMesh->Draw();
...