Index: /GTP/trunk/App/Demos/Illum/Ogre/Media/materials/scripts/Particles.material
===================================================================
--- /GTP/trunk/App/Demos/Illum/Ogre/Media/materials/scripts/Particles.material	(revision 1094)
+++ /GTP/trunk/App/Demos/Illum/Ogre/Media/materials/scripts/Particles.material	(revision 1336)
@@ -97,4 +97,5 @@
 			{
 				particle_script GameTools/Little
+				perspective false
 			}			
 		}
Index: /GTP/trunk/App/Demos/Illum/Ogre/Media/materials/scripts/GameTools.material
===================================================================
--- /GTP/trunk/App/Demos/Illum/Ogre/Media/materials/scripts/GameTools.material	(revision 1131)
+++ /GTP/trunk/App/Demos/Illum/Ogre/Media/materials/scripts/GameTools.material	(revision 1336)
@@ -7,5 +7,5 @@
 			//cull_hardware none			
 			lighting off
-			//scene_blend add
+			scene_blend add
 			//scene_blend_op add
 			//scene_blend_op_alpha add
@@ -15,8 +15,8 @@
 			ambient 1 0 0 1
 			diffuse 1 0 0 1
-			//texture_unit
-			//{
-			//	texture flare.png
-			//}
+			texture_unit
+			{
+				texture flare.png
+			}
 		}
 	}
Index: /GTP/trunk/App/Demos/Illum/Ogre/Media/materials/scripts/GameTools_HPS.material
===================================================================
--- /GTP/trunk/App/Demos/Illum/Ogre/Media/materials/scripts/GameTools_HPS.material	(revision 1336)
+++ /GTP/trunk/App/Demos/Illum/Ogre/Media/materials/scripts/GameTools_HPS.material	(revision 1336)
@@ -0,0 +1,14 @@
+vertex_program HPS_Smoke_S_VS hlsl
+{
+	source GameTools_HPS_Smoke_S.hlsl
+	entry_point VP
+	target vs_2_0
+} 
+
+fragment_program HPS_Smoke_S_PS hlsl
+{
+	source GameTools_HPS_Smoke_S.hlsl
+	entry_point FP
+	target ps_3_0
+} 
+
Index: /GTP/trunk/App/Demos/Illum/Ogre/Media/materials/programs/GameTools_HPS_Smoke_S.hlsl
===================================================================
--- /GTP/trunk/App/Demos/Illum/Ogre/Media/materials/programs/GameTools_HPS_Smoke_S.hlsl	(revision 1336)
+++ /GTP/trunk/App/Demos/Illum/Ogre/Media/materials/programs/GameTools_HPS_Smoke_S.hlsl	(revision 1336)
@@ -0,0 +1,56 @@
+
+struct VS_OUT
+{
+	float4 hPosition : POSITION;
+	float4 cPosition : TEXCOORD0;
+	float  radius	 : TEXCOORD2;
+	float4 texCoord	 : TEXCOORD1;
+};
+
+VS_OUT VP(float4 mPosition : POSITION,
+		  uniform float4x4 worldView,
+		  uniform float4x4 Proj,
+		  uniform float4x4 worldViewProj
+		  float2 texCoord :TEXCOORD0)
+{
+ VS_OUT Out;
+ Out.texCoord.xy = texCoord; 
+ Out.texCoord.zw = (texCoord * 2.0) - 1.0; 
+ 
+ float2 offset = texCoord.zw;
+ float4 cPosition = mul(worldView, mPosition);
+ cPosition.xy += offset;
+   
+ Out.hPosition = mul( Proj, cPosition );
+ Out.cPosition = cPosition;
+ Out.radius = abs(offset.x);
+ 
+  return OUT;
+}
+
+float4 FP(VS_OUT In,
+		  uniform float4x4 Proj,
+		  uniform sampler2D Texture):COLOR
+{
+	float4 color = 1;
+	float front = 0;
+	float back = 1;
+	
+	float4 tex = tex2D(Texture, In.texCoord.xy);
+	float d = length(In.TexCoord.zw);
+	float w = sqrt(In.radius * In.radius - d * d);
+	if(d < r)
+	{
+		float4 positionF; float4 positionB;
+		positionF = positionB = In.cPosition;
+		positionF.z -= w;
+		positionB.z += w;
+		positionF = mul(Proj, positionF);
+		positionB = mul(Proj, positionB);
+		positionF = (positionF / positionF.w + 1.0) / 2.0;
+		positionB = (positionB / positionB.w + 1.0) / 2.0;
+	}
+	color.rgb = positionF.z;
+	
+	return color;
+}
Index: /GTP/trunk/App/Demos/Illum/Ogre/Media/particle/GameTools.particle
===================================================================
--- /GTP/trunk/App/Demos/Illum/Ogre/Media/particle/GameTools.particle	(revision 1061)
+++ /GTP/trunk/App/Demos/Illum/Ogre/Media/particle/GameTools.particle	(revision 1336)
@@ -16,4 +16,46 @@
         colour_range_start 1 1 1 0
 		colour_range_end 0.8 1 0.5 0
+
+        angle           30
+        emission_rate   6
+        time_to_live    3
+        direction       0 1 0
+        velocity    	0
+        width           120
+        height          120
+        depth           30
+    }
+
+    // Make em float upwards
+    affector LinearForce
+    {
+        force_vector      0 40 0
+        force_application add
+    }
+
+    affector ColourFader2
+    {
+       alpha1 +0.5
+       alpha2 -0.5
+       state_change 0.5
+    }
+}
+
+GameTools/Big
+{
+	material		GameTools/HPS
+	//material		Flare
+    particle_width  200
+    particle_height 200
+    cull_each       false
+    quota           30
+    billboard_type  point
+    
+    // Area emitter
+    emitter Box
+    {
+       // colour 0.7 0.8 0.3 0
+       // colour_range_start 1 1 1 0
+		//colour_range_end 0.8 1 0.5 0
 
         angle           30
