material Bullet/Cone { // receive_shadows off technique { pass { ambient 1 1 1 1 diffuse 1 1 1 1 specular 1 1 1 1 10 texture_unit { texture cone.png tex_address_mode clamp } } } } material Bullet/Capsule { receive_shadows off technique { pass { ambient 1 1 1 1 diffuse 1 1 1 1 specular 1 1 1 1 10 texture_unit { texture capsule.png tex_address_mode clamp } } } } material Bullet/Ball { receive_shadows off technique { pass { ambient 1 1 1 1 diffuse 1 1 1 1 specular 1 1 1 1 10 texture_unit { texture ball.png } } } } // Any number of lights, diffuse and specular material Examples/BumpMapping/MultiLightSpecularTemplate { // This is the preferred technique which uses both vertex and // fragment programs, supports coloured lights technique { // Base ambient pass pass { // base colours, not needed for rendering, but as information // to lighting pass categorisation routine ambient 1 1 1 diffuse 0 0 0 specular 0 0 0 0 // Really basic vertex program // NB we don't use fixed function here because GL does not like // mixing fixed function and vertex programs, depth fighting can // be an issue vertex_program_ref Ogre/BasicVertexPrograms/AmbientOneTexture { param_named_auto worldViewProj worldviewproj_matrix param_named_auto ambient ambient_light_colour } } // Now do the lighting pass // NB we don't do decal texture here because this is repeated per light pass { // base colours, not needed for rendering, but as information // to lighting pass categorisation routine ambient 0 0 0 // do this for each light iteration once_per_light scene_blend add // Vertex program reference vertex_program_ref Examples/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 Examples/BumpMapFPSpecular { param_named_auto lightDiffuse light_diffuse_colour 0 param_named_auto lightSpecular light_specular_colour 0 } // Base bump map texture_unit normalMap { colour_op replace } // Normalisation cube map texture_unit { cubic_texture nm.png combinedUVW tex_coord_set 1 tex_address_mode clamp } // Normalisation cube map #2 texture_unit { cubic_texture nm.png combinedUVW tex_coord_set 2 tex_address_mode clamp } } // Decal pass pass { lighting off // Really basic vertex program // NB we don't use fixed function here because GL does not like // mixing fixed function and vertex programs, depth fighting can // be an issue vertex_program_ref Ogre/BasicVertexPrograms/AmbientOneTexture { param_named_auto worldViewProj worldviewproj_matrix param_named ambient float4 1 1 1 1 } scene_blend dest_colour zero texture_unit diffuseMap { } } } // This is the fallback which cards which don't have fragment program // support will use, NB does not support specular colour // Note that it still requires vertex program support technique { // Base ambient pass pass { // base colours, not needed for rendering, but as information // to lighting pass categorisation routine ambient 1 1 1 diffuse 0 0 0 specular 0 0 0 0 // Really basic vertex program // NB we don't use fixed function here because GL does not like // mixing fixed function and vertex programs, depth fighting can // be an issue vertex_program_ref Ogre/BasicVertexPrograms/AmbientOneTexture { param_named_auto worldViewProj worldviewproj_matrix param_named_auto ambient ambient_light_colour } } // Now do the lighting pass // NB we don't do decal texture here because this is repeated per light pass { // base colours, not needed for rendering, but as information // to lighting pass categorisation routine ambient 0 0 0 // do this for each light iteration once_per_light scene_blend add // Vertex program reference vertex_program_ref Examples/BumpMapVP { param_named_auto lightPosition light_position_object_space 0 param_named_auto worldViewProj worldviewproj_matrix } // Base bump map texture_unit normalMap { colour_op replace } // Normalisation cube map, with dot product on bump map texture_unit { cubic_texture nm.png combinedUVW tex_coord_set 1 tex_address_mode clamp colour_op_ex dotproduct src_texture src_current colour_op_multipass_fallback dest_colour zero } } // Decal pass pass { lighting off // Really basic vertex program // NB we don't use fixed function here because GL does not like // mixing fixed function and vertex programs, depth fighting can // be an issue vertex_program_ref Ogre/BasicVertexPrograms/AmbientOneTexture { param_named_auto worldViewProj worldviewproj_matrix param_named ambient float4 1 1 1 1 } scene_blend dest_colour zero texture_unit diffuseMap { } } } } material BulletPlane : Examples/BumpMapping/MultiLightSpecularTemplate { //set_texture_alias normalMap tiled_floor_normalheightmap.png //set_texture_alias diffuseMap tiled_floor_diffuse.png set_texture_alias diffuseMap MaPZone[Sewer_Plate_04_diffuse].dds set_texture_alias normalMap MaPZone[Sewer_Plate_04_normal].dds } material Bullet/box : Examples/BumpMapping/MultiLightSpecularTemplate { set_texture_alias diffuseMap MaPZone[Metal_Grate_diffuse].dds set_texture_alias normalMap MaPZone[Metal_Grate_normal].dds //set_texture_alias normalMap crate_normalheightmap.png //set_texture_alias diffuseMap crate_diffuse.png }