Direct3Dで影を表示した部分の画像が透けて見せるには
Posted: 2013年12月02日(月) 20:31
「DirectXグラフィックプログラミング」という本を読んで3Dの影を勉強したのですが、単に黒くするという方法でした。
影を表示した部分の画像が透けて見えると本当の影っぽくなると思うのですがどうすればいいでしょうか。
今あるソースは以下のような感じです。
よろしくお願いします。
//--------------------------------------
// モデルのシャドウの描画
//--------------------------------------
D3DXMatrixMultiply( &TempMat, &m_world, &m_shadow);
pD3DDevice->SetTransform( D3DTS_WORLD, &TempMat );
// モデルの描画
for(DWORD i =0; i<Object[number].m_numMesh; i++){
// マテリアルのセット(シャドウ用に暗くする)
pD3DDevice->SetMaterial( &m_shadowMat);
// 描画
Object[number].m_pMesh->DrawSubset( i );
}
pD3DDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
影を表示した部分の画像が透けて見えると本当の影っぽくなると思うのですがどうすればいいでしょうか。
今あるソースは以下のような感じです。
よろしくお願いします。
//--------------------------------------
// モデルのシャドウの描画
//--------------------------------------
D3DXMatrixMultiply( &TempMat, &m_world, &m_shadow);
pD3DDevice->SetTransform( D3DTS_WORLD, &TempMat );
// モデルの描画
for(DWORD i =0; i<Object[number].m_numMesh; i++){
// マテリアルのセット(シャドウ用に暗くする)
pD3DDevice->SetMaterial( &m_shadowMat);
// 描画
Object[number].m_pMesh->DrawSubset( i );
}
pD3DDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE );