В настоящее время я пытаюсь нарисовать тени на сцене в direct3d 9. Я пытаюсь сделать несколько проходов рендеринга, и у меня возникают проблемы с пониманием, как использовать / установить режим наложения.
Я сделалпроход глубины, который заполняет буфер глубины, и тогда у меня есть цикл, который проходит через все источники света в сцене.В этом цикле у меня есть 2 петли, которые оба перебирают все фигуры в сцене
У меня есть такие настройки
for(number of shapes)
{
//render from camera position and fill depth buffer
}
for(number of lights)
{
for(number of shapes)
{
//render to shadow map
}
for(number of shapes)
{
//render to screen
}
}
В пикселе я вижу, что он проходит через каждый светно когда я запускаю его, отображается только последний источник света в массиве источников света.Я думаю, что это как-то связано с режимом наложения.
Я посмотрел на режим наложения и нашел информацию об исходной и целевой смеси.Это то, что мне нужно / может кто-нибудь помочь объяснить это, пожалуйста?
Заранее спасибо,
Марк
[ РЕДАКТИРОВАТЬ ] Я получил оба источника света видимымииспользуя следующий код
hr = device->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
hr = device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ONE);
hr = device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);
Тени выглядят неправильно, но я приближаюсь к желаемому результату.
Любой другой совет был бы отличным,
Спасибо,
Марка