protected virtual void RenderQueueGroupObjects( RenderQueueGroup group )
{
// Redirect to alternate versions if stencil shadows in use
bool doShadows = group.ShadowsEnabled && this.currentViewport.ShowShadows &&
!this.suppressShadows && !this.suppressRenderStateChanges;
if ( doShadows && this.shadowTechnique == ShadowTechnique.StencilAdditive )
{
this.RenderAdditiveStencilShadowedQueueGroupObjects( group );
}
else if ( doShadows && this.shadowTechnique == ShadowTechnique.StencilModulative )
{
this.RenderModulativeStencilShadowedQueueGroupObjects( group );
}
else if ( this.IsShadowTechniqueTextureBased )
{
// Modulative texture shadows in use
if ( this.illuminationStage == IlluminationRenderStage.RenderToTexture )
{
// Shadow caster pass
if ( this.currentViewport.ShowShadows && !this.suppressShadows && !this.suppressRenderStateChanges )
{
this.RenderTextureShadowCasterQueueGroupObjects( group );
}
}
else
{
// Ordinary + receiver pass
if ( doShadows )
{
if ( this.IsShadowTechniqueAdditive )
{
this.RenderAdditiveTextureShadowedQueueGroupObjects( group );
}
else
{
this.RenderModulativeTextureShadowedQueueGroupObjects( group );
}
}
else
{
this.RenderBasicQueueGroupObjects( group );
}
}
}
else
{
// No shadows, ordinary pass
this.RenderBasicQueueGroupObjects( group );
}
}