// Any number of lights, diffuse material BumpMap_Base { technique { // Base ambient pass pass ambient { // base colours, not needed for rendering, but as information // to lighting pass categorisation routine diffuse 0 0 0 // need to prevent flickering depth_write on depth_bias 0 } // Now do the lighting pass // NB we don't do decal texture here because this is repeated per light pass perlight { // do this for each light iteration once_per_light scene_blend add // need to prevent flickering depth_write on depth_bias 1 // base colours, not needed for rendering, but as information // to lighting pass categorisation routine ambient 0 0 0 // Vertex program reference vertex_program_ref BumpMapping/BumpMapVP { param_named_auto lightPosition light_position_object_space 0 param_named_auto worldViewProj worldviewproj_matrix } // Fragment program fragment_program_ref BumpMapping/BumpMapFP { param_named_auto lightDiffuse light_diffuse_colour 0 } // texture shadow receiver program shadow_receiver_vertex_program_ref BumpMapping/BumpMapVPShadowRcv { param_named_auto lightPosition light_position_object_space 0 param_named_auto worldViewProj worldviewproj_matrix param_named_auto worldMatrix world_matrix param_named_auto texViewProj texture_viewproj_matrix } // Additive texture shadow receiver program shadow_receiver_fragment_program_ref BumpMapping/BumpMapFPShadowRcv { param_named_auto lightDiffuse light_diffuse_colour 0 } // Vertex program reference vertex_program_ref BumpMapping/BumpMapVPSpecular { param_named_auto lightPosition light_position_object_space 0 param_named_auto eyePosition camera_position_object_space param_named_auto worldViewProj worldviewproj_matrix } // Fragment program fragment_program_ref BumpMapping/BumpMapFPSpecular { param_named_auto lightDiffuse light_diffuse_colour 0 param_named_auto lightSpecular light_specular_colour 0 } // Base bump map texture_unit normalmap { texture Cube_Lava_NORM.jpg colour_op replace } } // Decal pass pass decal { // base colours, not needed for rendering, but as information // to lighting pass categorisation routine lighting off // need to prevent flickering depth_write on depth_bias 2 scene_blend dest_colour zero texture_unit decalmap { texture Cube_Lava_COLOR.jpg } } } } // Example for Material using this template // // import * from "BumpMap.material" // // Any number of lights, diffuse // material Cube_Lava_Normal : BumpMap_Base // { // technique // { // pass ambient // { // } // // Now do the lighting pass // // NB we don't do decal texture here because this is repeated per light // pass perlight // { // // Base bump map // texture_unit normalmap // { // texture Cube_Lava_NORM.jpg // colour_op replace // } // } // // Decal pass // pass decal // { // texture_unit decalmap // { // texture Cube_Lava_COLOR.jpg // } // } // } // }