I guess that setting these render states is the only way, according to this reply from WinterMute which I qouted from one of the replies OB maded:

Quote:


Hi Ryan,

the hidden geometry indeed needs to be rendered into the depth buffer, so that the shadow volume is properly mapped onto it. In Direct3D the following render states should do the trick:

Code:


m_Device->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
m_Device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ZERO);
m_Device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);




This unfortunately also means the hidden geometry must closely match the 2D image, otherwise the depth buffer will mask the 3D character (like on this screenshot: http://www.dead-code.org/blog/wp-content/shadow2.png).

JN





The red part is how it would be setted within D3D which is identical qua functionality to the code snippet HeelX posted. I've read about information that zEnable, zWriteEnable,alphaTest and alphaBlendEnable won't make any difference. Here's the information from msdn regarding render states:

msdn link

To make this error dissapear, you'll have to 'cheat' towards realtime rendering That is the only option AFAIK to resolve this problem until now. Maybe shadow mapping or shadow volumes via shaders won't be affected by invisible scene geometry but on the other hand, OB wants to avoid the shader way but I'll give it a shot though

Cheers

Frazzle


Antec® Case
Intel® X58 Chipset
Intel® i7 975 Quad Core
8 GB RAM DDR3
SSD OCZ®-VERTEX2 3.5 x4 ; HD 600 GB
NVIDIA® GeForce GTX 295 Memory 1795GB