CelShading.program        
//
// The maximum number of lights per-object (for now we can go no higher than 6). Decrease this value if you need some extra performance.
//
// If you change this, then you must enter 'CelShading.cg' and change the 'NUM_LIGHTS'
// definition to match this variable.
set $numLights 6

vertex_program CelShadingVP cg
{
	source CelShading.cg
	entry_point main_vp
	profiles vs_1_1 arbvp1
	
	default_params
	{
		param_named_auto worldViewProj worldviewproj_matrix
	}
}
fragment_program CelShadingFP cg
{
	source CelShading.cg
	entry_point main_fp
	profiles ps_2_x arbfp1
	
	default_params
	{
		param_named_auto eyePosition camera_position_object_space
		
		param_named_auto ambientColor surface_ambient_colour
		param_named_auto diffuseColor surface_diffuse_colour
		param_named_auto specularColor surface_specular_colour
		param_named_auto emissiveColor surface_emissive_colour
		param_named_auto shininess surface_shininess
		
		param_named_auto ambientLight ambient_light_colour
		
		param_named_auto lightDiffuse light_diffuse_colour_array $numLights
		param_named_auto lightSpecular light_specular_colour_array $numLights
		param_named_auto lightPosition light_position_object_space_array $numLights
		param_named_auto lightAttenuation light_attenuation_array $numLights
	}
}
fragment_program CelShadingDecalFP cg
{
	source CelShading.cg
	entry_point mainDecal_fp
	profiles ps_2_x arbfp1
	
	default_params
	{
		param_named_auto eyePosition camera_position_object_space
		
		param_named_auto ambientColor surface_ambient_colour
		param_named_auto diffuseColor surface_diffuse_colour
		param_named_auto specularColor surface_specular_colour
		param_named_auto emissiveColor surface_emissive_colour
		param_named_auto shininess surface_shininess
		
		param_named_auto ambientLight ambient_light_colour
		
		param_named_auto lightDiffuse light_diffuse_colour_array $numLights
		param_named_auto lightSpecular light_specular_colour_array $numLights
		param_named_auto lightPosition light_position_object_space_array $numLights
		param_named_auto lightAttenuation light_attenuation_array $numLights
	}
}
fragment_program CelShadingDecalSpecFP cg
{
	source CelShading.cg
	entry_point mainDecalSpec_fp
	profiles ps_2_x arbfp1
	
	default_params
	{
		param_named_auto eyePosition camera_position_object_space
		
		param_named_auto ambientColor surface_ambient_colour
		param_named_auto diffuseColor surface_diffuse_colour
		param_named_auto specularColor surface_specular_colour
		param_named_auto emissiveColor surface_emissive_colour
		param_named_auto shininess surface_shininess
		
		param_named_auto ambientLight ambient_light_colour
		
		param_named_auto lightDiffuse light_diffuse_colour_array $numLights
		param_named_auto lightSpecular light_specular_colour_array $numLights
		param_named_auto lightPosition light_position_object_space_array $numLights
		param_named_auto lightAttenuation light_attenuation_array $numLights
	}
}