private void EnableHardwareShadowExtrusion( Light light, bool finiteExtrude )
{
// attach the appropriate extrusion vertex program
// Note we never unset it because support for vertex programs is constant
this.shadowStencilPass.SetVertexProgram(
ShadowVolumeExtrudeProgram.GetProgramName( light.Type, finiteExtrude, false ) );
// Set params
if ( finiteExtrude )
{
this.shadowStencilPass.VertexProgramParameters = this.finiteExtrusionParams;
}
else
{
this.shadowStencilPass.VertexProgramParameters = this.infiniteExtrusionParams;
}
if ( this.showDebugShadows )
{
this.shadowDebugPass.SetVertexProgram(
ShadowVolumeExtrudeProgram.GetProgramName( light.Type, finiteExtrude, true ) );
// Set params
if ( finiteExtrude )
{
this.shadowDebugPass.VertexProgramParameters = this.finiteExtrusionParams;
}
else
{
this.shadowDebugPass.VertexProgramParameters = this.infiniteExtrusionParams;
}
}
this.targetRenderSystem.BindGpuProgram( this.shadowStencilPass.VertexProgram );
}