material SO3/CSM/ShadowCaster { technique { pass { lighting off fog_override true none depth_bias -1 -1 vertex_program_ref SO3/CSM/ShadowCasterVP { } fragment_program_ref SO3/CSM/ShadowCasterFP { } } } } material SO3/CSM/ShadowCaster/Alpha { technique { pass { lighting off fog_override true none depth_bias -1 -1 vertex_program_ref SO3/CSM/ShadowCasterVP { } fragment_program_ref SO3/CSM/ShadowCasterFP/Alpha { } } } } material SO3/CSM/NULL { technique { pass { lighting off depth_check off depth_write off colour_write off vertex_program_ref SO3/CSM/ShadowCasterVP { } fragment_program_ref SO3/CSM/ShadowCasterFP { } } } } material SO3/CSM/ShadowReceiver/basic { technique { pass { depth_bias 0.1 1.2 separate_scene_blend modulate add vertex_program_ref SO3/CSM/ShadowReceiverVP { } fragment_program_ref SO3/CSM/ShadowReceiverFP/basic { } texture_unit SO3/shadows/CSM/0 { content_type shadow tex_address_mode clamp } texture_unit SO3/shadows/CSM/1 { content_type shadow tex_address_mode clamp } texture_unit SO3/shadows/CSM/2 { content_type shadow tex_address_mode clamp } texture_unit SO3/shadows/CSM/3 { content_type shadow tex_address_mode clamp } texture_unit SO3/shadows/CSM/4 { texture KernelRotation.png filtering none } } } } material SO3/CSM/ShadowReceiver { technique { pass { depth_bias 0.1 1.2 separate_scene_blend modulate add vertex_program_ref SO3/CSM/ShadowReceiverVP { } fragment_program_ref SO3/CSM/ShadowReceiverFP { } texture_unit SO3/shadows/CSM/0 { content_type shadow tex_address_mode clamp } texture_unit SO3/shadows/CSM/1 { content_type shadow tex_address_mode clamp } texture_unit SO3/shadows/CSM/2 { content_type shadow tex_address_mode clamp } texture_unit SO3/shadows/CSM/3 { content_type shadow tex_address_mode clamp } texture_unit SO3/shadows/CSM/4 { texture CsmShadow/KernelRotation.png filtering none } texture_unit Diffuse { } } } } material SO3/CSM/ShadowReceiver2/basic { technique { pass { depth_bias 0.1 1.2 separate_scene_blend modulate add vertex_program_ref SO3/CSM/ShadowReceiverVP { } fragment_program_ref SO3/CSM/ShadowReceiver2FP/basic { } texture_unit SO3/shadows/CSM/0 { content_type shadow tex_address_mode clamp } texture_unit SO3/shadows/CSM/1 { content_type shadow tex_address_mode clamp } texture_unit SO3/shadows/CSM/4 { texture CsmShadow/KernelRotation.png filtering none } } } } material SO3/CSM/ShadowReceiver2 { technique { pass { depth_bias 0.1 1.2 separate_scene_blend modulate add vertex_program_ref SO3/CSM/ShadowReceiverVP { } fragment_program_ref SO3/CSM/ShadowReceiver2FP { } texture_unit SO3/shadows/CSM/0 { content_type shadow tex_address_mode clamp } texture_unit SO3/shadows/CSM/1 { content_type shadow tex_address_mode clamp } texture_unit SO3/shadows/CSM/4 { texture CsmShadow/KernelRotation.png filtering none } texture_unit Diffuse { } } } } material SO3/CSM/ShadowReceiver3/basic { technique { pass { depth_bias 0.1 1.2 separate_scene_blend modulate add vertex_program_ref SO3/CSM/ShadowReceiverVP { } fragment_program_ref SO3/CSM/ShadowReceiver3FP/basic { } texture_unit SO3/shadows/CSM/0 { content_type shadow tex_address_mode clamp } texture_unit SO3/shadows/CSM/1 { content_type shadow tex_address_mode clamp } texture_unit SO3/shadows/CSM/2 { content_type shadow tex_address_mode clamp } texture_unit SO3/shadows/CSM/4 { texture CsmShadow/KernelRotation.png filtering none } } } } material SO3/CSM/ShadowReceiver3 { technique { pass { depth_bias 0.1 1.2 separate_scene_blend modulate add vertex_program_ref SO3/CSM/ShadowReceiverVP { } fragment_program_ref SO3/CSM/ShadowReceiver3FP { } texture_unit SO3/shadows/CSM/0 { content_type shadow tex_address_mode clamp } texture_unit SO3/shadows/CSM/1 { content_type shadow tex_address_mode clamp } texture_unit SO3/shadows/CSM/2 { content_type shadow tex_address_mode clamp } texture_unit SO3/shadows/CSM/4 { texture CsmShadow/KernelRotation.png filtering none } texture_unit Diffuse { } } } }