Index: /GTP/trunk/App/Demos/Illum/Ogre/Media/materials/GTPAdvancedEnvMap/multibounce/multipleCausticRefraction/GTPMultipleCausticRefraction.material
===================================================================
--- /GTP/trunk/App/Demos/Illum/Ogre/Media/materials/GTPAdvancedEnvMap/multibounce/multipleCausticRefraction/GTPMultipleCausticRefraction.material	(revision 2134)
+++ /GTP/trunk/App/Demos/Illum/Ogre/Media/materials/GTPAdvancedEnvMap/multibounce/multipleCausticRefraction/GTPMultipleCausticRefraction.material	(revision 2134)
@@ -0,0 +1,182 @@
+fragment_program GTP/MultiBounce/PhotonMap_PS hlsl
+{
+	
+	source GTPMultipleReflection.hlsl
+    entry_point MultipleRefractionPhotonMap_PS
+	target ps_3_0
+	flow_control prefer
+}
+
+material GTP/MultiBounce/PhotonMap
+{
+ technique
+ {
+  pass
+  {   
+   vertex_program_ref GTP/Basic/Shaded_VS
+   {
+     param_named_auto WorldViewProj worldviewproj_matrix
+     param_named_auto World         world_matrix
+     param_named_auto WorldInv      inverse_world_matrix
+   } 
+   fragment_program_ref GTP/MultiBounce/PhotonMap_PS
+   {
+     param_named_auto cameraPos camera_position
+     param_named lastCenter float3 0 0 0
+     param_named refIndex float 0.995	
+   }
+   //cubemap of distances
+   texture_unit
+   {
+   
+   }
+   texture_unit
+   {
+    texture object_SE_0_COLORCUBEMAP_L1
+   }
+   texture_unit
+   {
+    texture object_SE_0_COLORCUBEMAP_L2
+   }
+  }
+ }
+}
+
+material GTP/MultiBounce/CauCube_Triangles
+{
+ technique
+ {
+  pass
+  { 
+   cull_hardware none
+   cull_software none
+   scene_blend src_alpha one
+   depth_check off
+   vertex_program_ref GTP/Caustic/CauCube_Triangles_VS
+   {
+     param_named_auto WorldView      worldview_matrix
+     param_named_auto Proj           projection_matrix
+     param_named PhotonMapResolution float 64
+     param_named WorldSize float 0.002
+   }
+   fragment_program_ref GTP/Caustic/CauCube_Triangles_PS
+   {
+     param_named CausticColor float4          1 1 1 1
+   //  param_named WorldSize float 6
+     param_named WorldSize float 1
+      
+   }
+   texture_unit
+   {
+     vertex_texture true	 
+   }     
+  }
+ }
+}
+
+
+//object_SE_0_DISTANCECUBEMAP_L1
+
+material GTP/MultiBounce/CausticRefractor
+{ 
+   technique 
+   { 
+      pass 
+      { 
+        //cull_hardware none
+		IllumTechniques
+		{
+			RenderTechnique CausticCaster
+			{
+				attenuation	1000000
+				update_interval 1
+				update_all_face true
+				photonmap_resolution 64
+				caustic_cubemap_resolution 256
+				//photon_map_material	GTP/MultiBounce/PhotonMap
+				photon_map_material	GTP/Caustic/PhotonMap_HitEnv
+				caustic_map_material	GTP/MultiBounce/CauCube_Triangles
+				use_triangles	true
+				blur_caustic_cubemap true				
+			}
+			RenderTechnique ColorCubeMap
+			{
+				resolution 1024
+				update_interval		1
+				distance_calc false
+				face_angle_calc false
+				update_all_face true
+								
+			}
+			RenderTechnique DistanceCubeMap
+			{
+				resolution 1024
+				update_interval		1
+				distance_calc false
+				face_angle_calc false
+				update_all_face true				
+			}
+			RenderTechnique ColorCubeMap
+			{
+				resolution 1024
+				layer 1
+				texture_unit_id 2
+				update_interval		1
+				distance_calc false
+				face_angle_calc false
+				update_all_face true
+				render_env false
+				render_self true
+				self_material GTP/MultiBounce/NormalDistanceCCW				
+			}
+			RenderTechnique ColorCubeMap
+			{
+				resolution 1024
+				layer 2
+				texture_unit_id 3
+				update_interval		1
+				distance_calc false
+				face_angle_calc false
+				update_all_face true
+				render_env false
+				render_self true
+				self_material GTP/MultiBounce/NormalDistanceCW			
+			}						
+		 }
+		 vertex_program_ref GTP/Basic/Shaded_CPos_VS
+    	 {       
+       	 	param_named_auto WorldViewProj worldviewproj_matrix 
+    		param_named_auto World         world_matrix
+    		param_named_auto WorldInv inverse_world_matrix  
+   		 }
+		 fragment_program_ref GTP/MultiBounce/Refraction_PS
+         { 
+			param_named_auto cameraPos camera_position						
+			param_named refIndex float 0.995
+			param_named sFresnel float 0.04
+		 } 
+		
+		//Cube map of environment
+		texture_unit
+		{
+			//filtering none
+		}
+		//Cube map of environment distances
+		texture_unit
+		{
+			filtering none
+		}
+		
+		//Cube map of reflective object's normals and distances CCW
+		texture_unit
+		{
+			filtering none
+		}		
+		//Cube map of reflective object's normals and distances CW
+		texture_unit
+		{
+			filtering none
+		}
+	  }
+    }
+}
