Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Bump Mapping штатными средствами DirectX9
собственно сабж. как сделать? в directx9 так можно. вот таким макаром работает. текстура с бампом, но вся ядовито-фиолетовая какая-то

if(FAILED(pd3dd->SetTexture(0,Ent->mTexture.pTexture))) Error("Невозможно установить текстуру");
pd3dd->SetTransform(D3DTS_TEXTURE0,&Ent->mTexture.mTransform);
pd3dd->SetTextureStageState( 0 , D3DTSS_TEXTURETRANSFORMFLAGS,D3DTTFF_COUNT2);
pd3dd->SetTextureStageState( 0 , D3DTSS_TEXCOORDINDEX, 0 );
pd3dd->SetTextureStageState( 0 , D3DTSS_ALPHAOP, D3DTOP_MODULATE );
pd3dd->SetTextureStageState( 0 , D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
pd3dd->SetTextureStageState( 0 , D3DTSS_ALPHAARG2, D3DTA_DIFFUSE );
// Stage 0: The base texture
pd3dd->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE );
pd3dd->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
pd3dd->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
pd3dd->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 );
pd3dd->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
pd3dd->SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, 0 );
if(FAILED(pd3dd->SetTexture(1,Ent->mTexture.pBump))) Error("Невозможно установить текстуру");
pd3dd->SetTextureStageState( 1 , D3DTSS_TEXTURETRANSFORMFLAGS,D3DTTFF_COUNT2);
pd3dd->SetTransform(D3DTS_TEXTURE1,&Ent->mTexture.mTransform);
pd3dd->SetTextureStageState( 1, D3DTSS_BUMPENVMAT00, F2DW(1.0f) );
pd3dd->SetTextureStageState( 1, D3DTSS_BUMPENVMAT01, F2DW(0.0f) );
pd3dd->SetTextureStageState( 1, D3DTSS_BUMPENVMAT10, F2DW(0.0f) );
pd3dd->SetTextureStageState( 1, D3DTSS_BUMPENVMAT11, F2DW(1.0f) );
pd3dd->SetTextureStageState( 1, D3DTSS_BUMPENVLSCALE, F2DW(1.0f) );
pd3dd->SetTextureStageState( 1, D3DTSS_BUMPENVL:''(( OFFSET, F2DW(1.0f) );
pd3dd->SetTextureStageState( 1, D3DTSS_TEXCOORDINDEX, 0 );
pd3dd->SetTextureStageState( 1, D3DTSS_COLOROP, D3DTOP_BUMPENVMAPLUMINANCE);
pd3dd->SetTextureStageState( 1, D3DTSS_COLORARG1, D3DTA_TEXTURE );
pd3dd->SetTextureStageState( 1, D3DTSS_COLORARG2, D3DTA_CURRENT );
if(FAILED(pd3dd->SetTexture(2,Ent->mTexture.pEnvMap))) Error("Невозможно установить текстуру");
pd3dd->SetTextureStageState( 2 , D3DTSS_TEXTURETRANSFORMFLAGS,D3DTTFF_COUNT2);
pd3dd->SetTransform(D3DTS_TEXTURE2,&Ent->mTexture.mTransform);
// Stage 2: A specular environment map
pd3dd->SetTextureStageState( 2, D3DTSS_TEXCOORDINDEX, 1 );
pd3dd->SetTextureStageState( 2, D3DTSS_COLOROP, D3DTOP_ADD );
pd3dd->SetTextureStageState( 2, D3DTSS_COLORARG1, D3DTA_TEXTURE );
pd3dd->SetTextureStageState( 2, D3DTSS_COLORARG2, D3DTA_CURRENT );
плиз помогите. шейдеры не предлагать
__________________
|