Index: data/branches/Shader_HS18/materials/BumpMapping/BumpMap.material
===================================================================
--- data/branches/Shader_HS18/materials/BumpMapping/BumpMap.material	(revision 12120)
+++ data/branches/Shader_HS18/materials/BumpMapping/BumpMap.material	(revision 12120)
@@ -0,0 +1,131 @@
+// 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
+          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
+            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
+            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
+//             }
+//         }
+//     }
+// }
