private void InitShadowCasterPass()
{
Material matPlainBlack = (Material)MaterialManager.Instance[ TEXTURE_SHADOW_CASTER_MATERIAL ];
if ( matPlainBlack == null )
{
matPlainBlack =
(Material)
MaterialManager.Instance.Create( TEXTURE_SHADOW_CASTER_MATERIAL,
ResourceGroupManager.InternalResourceGroupName );
this.shadowCasterPlainBlackPass = matPlainBlack.GetTechnique( 0 ).GetPass( 0 );
// Lighting has to be on, because we need shadow coloured objects
// Note that because we can't predict vertex programs, we'll have to
// bind light values to those, and so we bind White to ambient
// reflectance, and we'll set the ambient colour to the shadow colour
this.shadowCasterPlainBlackPass.Ambient = ColorEx.White;
this.shadowCasterPlainBlackPass.Diffuse = ColorEx.Black;
this.shadowCasterPlainBlackPass.SelfIllumination = ColorEx.Black;
this.shadowCasterPlainBlackPass.Specular = ColorEx.Black;
// Override fog
this.shadowCasterPlainBlackPass.SetFog( true, FogMode.None );
// no textures or anything else, we will bind vertex programs
// every so often though
}
else
{
this.shadowCasterPlainBlackPass = matPlainBlack.GetTechnique( 0 ).GetPass( 0 );
}
}