Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.16;
Скачать: CL | DM;

Вниз

Alpha-channel в Direct3D   Найти похожие ветки 

 
MeF88 ©   (2003-07-02 15:18) [0]

Пишу нечто вроде спрайтового движка на Direct3D для одной игры. У меня есть 32битная текстура с альфа-каналом. Сам прямоугольник с текстурой выводится нормально, но как задать в Direct3D использование альфа-канала из текстуры?


 
NailMan ©   (2003-07-02 16:48) [1]

Ковыряй SDK на тему Alpha Texture Blending. Стейты D3DBLEND_*** и IDirect3DDevice8.SetRenderState();

В примерах SDK есть такая прога(среди примеров D3D, названия точно не помню, но есть что-то с *tex*), в которой можно интерактивно создавать стейты(с отображением на образце) с различными режимами и он выдает тебе конечный код, который можно впихнуть в свой проект(преобразовав с C++ к паскалевскому виду).


 
MeF88 ©   (2003-07-02 21:54) [2]

Эх. Я SDK стер недавно, так бы может быть не спрашивал. Но я пробовал все возможные D3DBlend_*, правда какой рендер стайт стоял не помню...


 
Sapersky_   (2003-07-03 09:22) [3]

SetRenderState(D3DRS_ALPHABLENDENABLE, 1);
SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);

SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
SetTextureStageState(0, D3DTSS_ALPHAOP, ( SetTextureStageState) [3] SetRenderState(D3DRS_ALPHABLENDENABLE, 1);
SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);

SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);

Ну и, само собой, в текстуре должен быть альфа-канал.
Упомянутая прога из DX SDK называется MFCTex. Там, правда, используется только текстурный блендинг (SetTextureStageState), но обычный легко добавить, т.к. имеется Delphi-конверсия на http://clootie.narod.ru/index.html



Страницы: 1 вся ветка

Текущий архив: 2004.01.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
1-49507
Quit
2004-01-03 13:49
2004.01.16
Сохранить и загрузить цвет в ini


14-49754
Dmitriy O.
2003-12-24 10:58
2004.01.16
Глюки в модуле данных


7-49782
AngryMac
2003-10-31 20:17
2004.01.16
RS-232


6-49671
Sadya
2003-11-14 11:26
2004.01.16
No such host known


4-49812
Saris
2003-11-12 16:51
2004.01.16
Выделение свыше 2Гб виртуалки.