Render System: dx9c
In my tool, I'm rendering some objects twice to create an outline pass which I then composite on top of my scene to show what is selected.
It was working well, but It doesn't anymore, since a few weeks.
I'm not sure if it's because of recent changes in Ogre or if it's because I compiled Ogre and my app in 64bits for the first time recently.
What happens is that when I change the mesh visibility flags, they are excluded from the shadow rendering (which is using LiSPSMShadowCameraSetup)
If an object is selected, I'm doing:
Code: Select all
if (editorState==NOTSELECTEDOVER || editorState==SELECTEDOVER)
EntityMesh->setVisibilityFlags(1<<2);
else
EntityMesh->setVisibilityFlags(1<<1);
Code: Select all
compositor outline
{
technique
{
texture outlinesSelected target_width target_height PF_FLOAT16_R no_fsaa
texture outlinesHoover target_width target_height PF_FLOAT16_R no_fsaa
texture scene target_width target_height PF_A8R8G8B8
// the scene we want to modulate
target scene
{
input previous
}
target outlinesSelected
{
input none
material_scheme outlinesMaterial
shadows off
pass clear
{
colour_value 0 0 0 1
}
visibility_mask 4
pass render_scene
{
}
}
target outlinesHoover
{
input none
material_scheme outlinesMaterial
shadows off
pass clear
{
colour_value 0 0 0 1
}
visibility_mask 2
pass render_scene
{
}
}
target_output
{
input none
shadows off
pass render_quad
{
material outline
input 0 scene
input 1 outlinesSelected
input 2 outlinesHoover
}
}
}
}