Index: /GTP/trunk/App/Demos/Illum/Ogre/Media/materials/GTPPathMap/PathMapWeightCompute.hlsl
===================================================================
--- /GTP/trunk/App/Demos/Illum/Ogre/Media/materials/GTPPathMap/PathMapWeightCompute.hlsl	(revision 2409)
+++ /GTP/trunk/App/Demos/Illum/Ogre/Media/materials/GTPPathMap/PathMapWeightCompute.hlsl	(revision 2417)
@@ -32,8 +32,8 @@
     vsOutputComputeWeights output = (vsOutputComputeWeights)0;
     output.pos = input.pos;
-    output.tex = (input.pos + 1.0) / 2.0;
+    output.tex = (input.pos.xy + 1.0) / 2.0;
     //output.tex = input.tex;
-   // output.tex.y = 1.0 - output.tex.y;
-    input.pos.y *= -1;
+    output.tex.y = 1.0 - output.tex.y;
+    //input.pos.y *= -1;
    
     return output;
@@ -95,9 +95,14 @@
 {
 	float dataColumnWidth = 1.0 / (float)nRadionColumns;
-	int bushIndex = input.tex.x * 4096 + input.tex.y * nRadionColumns * 4096;
+/*	int bushIndex = input.tex.x * 4096 + input.tex.y * nRadionColumns * 4096;
 	int werx = bushIndex % nRadionColumns;
 	int wery = bushIndex / nRadionColumns;
 	float3 pos = tex2D(radionSampler, float2((werx + 0.25) * dataColumnWidth, (wery  + 0.5) / 4096.0) ).xyz;
-	float3 dir = tex2D(radionSampler, float2((werx + 0.75) * dataColumnWidth, (wery  + 0.5) / 4096.0) ).xyz;
+	float3 dir = tex2D(radionSampler, float2((werx + 0.75) * dataColumnWidth, (wery  + 0.5) / 4096.0) ).xyz;*/
+	float3 pos = tex2D(radionSampler, float2(input.tex.x + 0.25 * dataColumnWidth, input.tex.y  + 0.5 / 4096.0) ).xyz;
+	float3 dir = tex2D(radionSampler, float2(input.tex.x + 0.75 * dataColumnWidth, input.tex.y  + 0.5 / 4096.0) ).xyz;
+//	float3 pos = tex2D(radionSampler, float2(0.25, input.tex.y  + 0.5 / 4096.0) ).xyz;
+//	float3 dir = tex2D(radionSampler, float2(0.75, input.tex.y  + 0.5 / 4096.0) ).xyz;
+	
 	dir = normalize(dir);
 	
@@ -115,9 +120,10 @@
 	dist -= DIST_BIAS;
 	visibility = (distNorm <= storedDist);
-	  
-	visibility = 1.0 + 0.00001 * visibility;		
+	//visibility = visibility * 0.0000001 + 1.0;  
 	visibility *=  1.0 / (lightAttenuation.y + dist * lightAttenuation.z + dist * dist * lightAttenuation.w);
 	
 	float4 ret = visibility * cosb * lightPower * lightColor;
+	
+	//ret = 0.00000001 * ret * nRadionColumns + (dist<25.0);//float4(pos,1);//input.tex.y * 4096.0;
 	return ret;
 }
@@ -137,12 +143,15 @@
 	for(int i = 0; i < entryPointCount; i++)
 	{
-		
 		float dataColumnWidth = 1.0 / (float)nRadionColumns;
 		int werx = currentEntryPoint % nRadionColumns;
 		int wery = currentEntryPoint / nRadionColumns;
-		float2 coord1 = float2((werx + 0.5) * dataColumnWidth, (wery  + 0.5) / 4096.0);
+		float2 coord1 = float2((werx + 0.5) * dataColumnWidth, (wery  + 0.5) / 4096.0);		
 		float2 coord2 = coord1 + float2(0.25 * dataColumnWidth, 0);
+		
+		//coord1 = coord1 * 0.00000001 + float2(0.5, (currentEntryPoint + 0.5)/4096);
+		//coord2 = coord1 + float2(0.25, 0);
+		
 		float3 w = tex2Dlod(allWeightsSampler, float4(coord1, 0, 0)).rgb;
-		float radrad = tex2Dlod(radionSampler, float4(coord2, 0, 0)).a;		
+		float radrad = 1;// tex2Dlod(radionSampler, float4(coord2, 0, 0)).a;		
 		weight += w * radrad;		
 		clusterRad += radrad;
@@ -155,5 +164,8 @@
 		weight = 0;
    
-	return float4(weight, 1);
+	float4 ret = 0;
+	//if(abs(input.tex.x - 2*halfPixel*2)<halfPixel/2.0)
+		ret = float4(weight, 1);	
+	return ret;
 }
 
@@ -162,15 +174,22 @@
 						 uniform float4x4 worldViewProj,
 						 out float4 hPos:POSITION,
-						 out float2 texCoord: TEXCOORD0)
+						 out float3 texCoord: TEXCOORD0)
 {
-	hPos = mul(worldViewProj, position);
-	texCoord = color.xy;
+	hPos = mul(worldViewProj, float4(position.x,0,position.z,1));
+	texCoord = color.xyz;
+	texCoord = position.y;
 }
 
-float4 EntryPointDisplayPS(float2 texCoord : TEXCOORD0,
-							uniform sampler2D weightTexture : register(s0)):COLOR0
+float4 EntryPointDisplayPS(float3 texCoord : TEXCOORD0,
+							uniform sampler2D weightTexture : register(s0),
+							uniform sampler2D clusterWeightTexture : register(s1)):COLOR0
 {
-	//return texCoord.y;
-	return texCoord.r;
+	float entryPointID = (256.0f * texCoord.r * 256.0f + 256.0f * texCoord.g + 0.5) / 4096.0f;
+	entryPointID = texCoord.x;
+	//return float4(texCoord, 1);
+	//return tex2D(clusterWeightTexture, float2(0.5, 1.0 - ((entryPointID + 0.5 )/ 4096.0)));
+	return tex2D(weightTexture, float2(0.5, ((entryPointID + 0.5 )/ 4096.0)));
+	//return abs(tex2D(weightTexture, float2(0.5, ((entryPointID + 0.5 )/ 4096.0))) - entryPointID);
+	return entryPointID;
 }
 							 
Index: /GTP/trunk/App/Demos/Illum/Ogre/Media/materials/GTPPathMap/PathMap.material
===================================================================
--- /GTP/trunk/App/Demos/Illum/Ogre/Media/materials/GTPPathMap/PathMap.material	(revision 2403)
+++ /GTP/trunk/App/Demos/Illum/Ogre/Media/materials/GTPPathMap/PathMap.material	(revision 2417)
@@ -166,4 +166,10 @@
     	{  
 	    	filtering none   
+	    	texture MainLightPM_WEIGHT_MAP_ALL
+    	}
+    	texture_unit
+    	{
+	    	filtering none   
+	    	texture MainLightPM_WEIGHT_MAP
     	}
    }
Index: /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/troll.material
===================================================================
--- /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/troll.material	(revision 2414)
+++ /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/troll.material	(revision 2417)
@@ -1,5 +1,5 @@
 vertex_program TrollSkinningOneWeight cg
 {
-   source trollvs.cg
+   source SkinningVS.cg
    entry_point trollSkinning_One_Weight_vp
    profiles vs_2_0
@@ -9,5 +9,5 @@
 vertex_program TrollSkinningSMGen cg
 {
-   source trollvs.cg
+   source SkinningVS.cg
    entry_point trollSkinning_SMGen_One_Weight_vp
    profiles vs_2_0
@@ -89,6 +89,7 @@
    			    param_named_auto lightPower light_power 0
    			    param_named_auto lightColor light_diffuse_colour 0
-   			    param_named specularity float 1
-   			    param_named specularColor float4 0.02 0.02 0.02 0.02   			
+   			    param_named specularity float 200
+   			    param_named albedo float 0.1
+   			    param_named specularColor float4 0.0016 0.0015 0.001 0   			
 			}
 			texture_unit basetexture
Index: /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/trollps.hlsl
===================================================================
--- /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/trollps.hlsl	(revision 2398)
+++ /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/trollps.hlsl	(revision 2417)
@@ -15,4 +15,5 @@
 
 uniform float specularity;
+uniform float albedo;
 uniform float4 specularColor;
 
@@ -37,9 +38,9 @@
 	float3 L = IN.L;
 	
-	float4 diffuseColor = tex2D(colorTexture, IN.texCoord);
+	float4 diffuseColor = albedo * tex2D(colorTexture, IN.texCoord);
 	
 	Color = Illumination(N, L, V, lightColor * lightPower, lightRange, diffuseColor, specularity, specularColor);
 	
-	float4 ret =  diffuseColor * 0.1 + Color;
+	float4 ret =  Color;
 	return float4(ret.xyz, dist);
 }
Index: /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/moria.material
===================================================================
--- /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/moria.material	(revision 2398)
+++ /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/moria.material	(revision 2417)
@@ -23,5 +23,6 @@
 				//RenderTechnique PathMap
 			 	//{
-			    //	new_passes false
+				// 	pass_blending one zero
+			   // 	new_passes false
 				//	start_tex_id 3
 			  	//}	
Index: /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/MoriaHallBase.hlsl
===================================================================
--- /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/MoriaHallBase.hlsl	(revision 2404)
+++ /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/MoriaHallBase.hlsl	(revision 2417)
@@ -129,7 +129,9 @@
 	//do Path Map to gather indirect illumination
 	
-//	float4 indirect = PathMapIndirect(PathMap, WeightIndexMap, WeightMap, IN.texCoord2.zw) * 1.2;
-//	indirect *= diffuseColor;
-//	Color = Color + indirect;
+	//float4 indirect = PathMapIndirect(PathMap, WeightIndexMap, WeightMap, IN.texCoord2.zw) * 1.2;
+	//indirect *= diffuseColor;
+	//Color = Color + indirect;
+	
+	Color += lightPower1 * diffuseColor * 0.0005;
 	
 	//gather caustics for all casters
Index: /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/FPSArm_PS.hlsl
===================================================================
--- /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/FPSArm_PS.hlsl	(revision 2417)
+++ /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/FPSArm_PS.hlsl	(revision 2417)
@@ -0,0 +1,46 @@
+#define MAX_LIGHT 2
+#define MAX_CAU_CASTER 2
+#define SPOT_ANGLE 2.093
+#define SPOT_FALLOFF 1
+#define SHADOW_COLOR float4(0.3,0.3,0.3,1.0)
+#define SHADOW_BIAS_POINT 0.0001
+#define SHADOW_EPSILON_POINT 0.0001
+
+uniform sampler2D colorTexture : register(s0);
+uniform sampler2D bumpMap : register(s1);
+
+uniform float4 lightRange;
+uniform float lightPower;
+uniform float4 lightColor;
+
+uniform float specularity;
+uniform float4 specularColor;
+uniform float albedo;
+
+#include "illum.hlsl"
+
+struct PS_IN
+{
+	float2 texCoord:TEXCOORD0;
+	float3 tangent:TEXCOORD1;
+	float3 binormal:TEXCOORD2;
+	float3 normal:TEXCOORD3;
+	float3 V: TEXCOORD4;
+	float3 L: TEXCOORD5;
+};
+
+float4 FPSArm_PS(PS_IN IN):COLOR
+{
+	float4 Color = 0;
+	float3 N = normalize(IN.normal);//NormalMap(IN.tangent, IN.binormal, IN.normal, IN.texCoord, bumpMap);
+	float dist = length(IN.V);
+	float3 V = IN.V /dist;
+	float3 L = IN.L;
+	
+	float4 diffuseColor = albedo * tex2D(colorTexture, IN.texCoord);
+	
+	Color = Illumination(N, L, V, lightColor * lightPower, lightRange, diffuseColor, specularity, specularColor);
+	
+	float4 ret = Color;
+	return float4(ret.xyz, dist);
+}
Index: /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/SkinningVS.cg
===================================================================
--- /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/SkinningVS.cg	(revision 2417)
+++ /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/SkinningVS.cg	(revision 2417)
@@ -0,0 +1,130 @@
+
+void trollSkinning_One_Weight_vp(
+	float4 position : POSITION,
+	float3 normal   : NORMAL,
+	float2 uv       : TEXCOORD0,
+	float3 tangent  : TANGENT,
+	float4  blendIdx : BLENDINDICES,
+	float4 blendWgt : BLENDWEIGHT,
+	out float4 oPosition : POSITION,
+	out float2 oUv       : TEXCOORD0,
+	//out float3 oTangent: TEXCOORD1,
+	//out float3 oBinormal: TEXCOORD2,
+	out float3 oNormal   : TEXCOORD3,
+	out float3 V: TEXCOORD4,
+	out float3 L: TEXCOORD5,
+	uniform float3x4   worldMatrix3x4Array[69],
+	uniform float4x4 viewProjectionMatrix,
+	uniform float4   lightPos,
+	uniform float4   cameraPos)
+{
+	// transform by indexed matrix
+	float4 blendPos = float4(0,0,0,1);
+	blendPos.xyz += mul(worldMatrix3x4Array[blendIdx[0]], position).xyz * blendWgt[0];
+	blendPos.xyz += mul(worldMatrix3x4Array[blendIdx[1]], position).xyz * blendWgt[1];
+	
+	// view / projection
+	oPosition = mul(viewProjectionMatrix, blendPos);
+	// transform normal
+	oNormal = mul((float3x3)worldMatrix3x4Array[blendIdx[0]], normal) * blendWgt[0];
+	oNormal += mul((float3x3)worldMatrix3x4Array[blendIdx[1]], normal) * blendWgt[1];
+	//oTangent = mul((float3x3)worldMatrix3x4Array[blendIdx], tangent);
+	oNormal = normalize(oNormal);
+//	oTangent = normalize(oTangent);
+//	oBinormal = cross(oTangent, oNormal);
+	// Lighting - support point and directional
+	L =  lightPos.xyz - blendPos.xyz * lightPos.w;
+	V =  cameraPos.xyz - blendPos.xyz;
+	
+	oUv = uv;	
+}	
+
+
+void trollSkinning_SMGen_One_Weight_vp(
+	float4 position : POSITION,
+	float4  blendIdx : BLENDINDICES,
+	float4 blendWgt : BLENDWEIGHT,	
+	out float4 oPosition : POSITION,
+	out float3 cPos:TEXCOORD0,	
+	uniform float3x4   worldMatrix3x4Array[67],
+	uniform float4x4 viewMatrix,
+	uniform float4x4 viewProjectionMatrix)
+{
+	// transform by indexed matrix
+	float4 blendPos = float4(0,0,0,1);
+	blendPos.xyz += mul(worldMatrix3x4Array[blendIdx[0]], position).xyz * blendWgt[0];
+	blendPos.xyz += mul(worldMatrix3x4Array[blendIdx[1]], position).xyz * blendWgt[1];
+	
+	// view / projection
+	cPos = mul(viewMatrix, blendPos).xyz;
+	oPosition = mul(viewProjectionMatrix, blendPos);	
+}
+
+struct PS_IN
+{
+	float4 hPos:POSITION;
+	float2 texCoord:TEXCOORD0;
+	float3 tangent:TEXCOORD1;
+	float3 binormal:TEXCOORD2;
+	float3 normal:TEXCOORD3;
+	float3 V: TEXCOORD4;
+	float3 L: TEXCOORD5;
+};
+
+PS_IN FPSArmSkinning_VP(float4 position : POSITION,
+			float3 normal   : NORMAL,
+			float3 tangent  : TANGENT,
+			float2 uv       : TEXCOORD0,
+			float4  blendIdx : BLENDINDICES,
+			float4 blendWgt : BLENDWEIGHT,
+			uniform float3x4   worldMatrix3x4Array[49],
+			uniform float4x4 viewMatrix,
+			uniform float4x4 viewProjectionMatrix,
+			uniform float4   lightPos,
+			uniform float4   cameraPos)
+{
+	PS_IN OUT = (PS_IN) 0;
+	// transform by indexed matrix
+	float4 blendPos = float4(0,0,0,1);
+	blendPos.xyz += mul(worldMatrix3x4Array[blendIdx[0]], position).xyz * blendWgt[0];
+	blendPos.xyz += mul(worldMatrix3x4Array[blendIdx[1]], position).xyz * blendWgt[1];
+	
+	// view / projection
+	OUT.hPos = mul(viewProjectionMatrix, blendPos);
+	// transform normal
+	OUT.normal = mul((float3x3)worldMatrix3x4Array[blendIdx[0]], normal) * blendWgt[0];
+	OUT.normal += mul((float3x3)worldMatrix3x4Array[blendIdx[1]], normal) * blendWgt[1];
+	OUT.tangent = mul((float3x3)worldMatrix3x4Array[blendIdx[0]], tangent) * blendWgt[0];
+	OUT.tangent += mul((float3x3)worldMatrix3x4Array[blendIdx[1]], tangent) * blendWgt[1];
+	OUT.normal = normalize(OUT.normal);
+	OUT.tangent = normalize(OUT.tangent);
+	OUT.binormal = cross(OUT.tangent, OUT.normal);
+	// Lighting - support point and directional
+	OUT.L =  lightPos.xyz - blendPos.xyz * lightPos.w;
+	OUT.V =  cameraPos.xyz - blendPos.xyz;
+	
+	OUT.texCoord = uv;
+
+	return OUT;	
+}
+
+void FPSArmSkinning_SMGen_VP(
+	float4 position : POSITION,
+	float4  blendIdx : BLENDINDICES,
+	float4 blendWgt : BLENDWEIGHT,	
+	out float4 oPosition : POSITION,
+	out float3 cPos:TEXCOORD0,	
+	uniform float3x4   worldMatrix3x4Array[49],
+	uniform float4x4 viewMatrix,
+	uniform float4x4 viewProjectionMatrix)
+{
+	// transform by indexed matrix
+	float4 blendPos = float4(0,0,0,1);
+	blendPos.xyz += mul(worldMatrix3x4Array[blendIdx[0]], position).xyz * blendWgt[0];
+	blendPos.xyz += mul(worldMatrix3x4Array[blendIdx[1]], position).xyz * blendWgt[1];
+	
+	// view / projection
+	cPos = mul(viewMatrix, blendPos).xyz;
+	oPosition = mul(viewProjectionMatrix, blendPos);	
+}
+	
Index: /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/illum.hlsl
===================================================================
--- /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/illum.hlsl	(revision 2404)
+++ /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/illum.hlsl	(revision 2417)
@@ -79,6 +79,6 @@
 		float3 weight = tex2D(weightTex, float2((weightIndex + 0.5)/allClusterCount, 0.5)).rgb;
 		float3 val = tex2D(PMTex, prmTexPos).xyz;
-		if(length(val - float3(1,1,1))== 0)
-		val = 0;
+	//	if(length(val - float3(1,1,1))== 0)
+	//	val = 0;
 		col += val.xyz * weight;		
 	}
Index: /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/FPSarm.material
===================================================================
--- /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/FPSarm.material	(revision 2414)
+++ /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/FPSarm.material	(revision 2417)
@@ -1,2 +1,65 @@
+vertex_program FPSArmSkinning_VP cg
+{
+  source SkinningVS.cg
+  entry_point FPSArmSkinning_VP
+   profiles vs_2_0
+   includes_skeletal_animation true
+}
+
+vertex_program FPSArmSkinning_SMGen_VP cg
+{
+  source SkinningVS.cg
+  entry_point FPSArmSkinning_SMGen_VP
+  profiles vs_2_0
+  includes_skeletal_animation true
+}
+
+fragment_program FPSArm_PS hlsl
+{
+   source FPSArm_PS.hlsl
+   entry_point FPSArm_PS
+   target ps_2_0
+}
+
+material FPSArmShadowMapGen_POINT
+{
+	technique
+	{
+		pass
+		{
+			vertex_program_ref FPSArmSkinning_SMGen_VP 
+			{
+				param_named_auto worldMatrix3x4Array[0] world_matrix_array_3x4
+				param_named_auto viewProjectionMatrix viewproj_matrix
+				param_named_auto viewMatrix view_matrix				
+			}
+		  fragment_program_ref GTP/Basic/CDistNorm_PS
+		   {	
+		    param_named_auto farPlane far_clip_distance
+		   }  
+		}
+	}
+}
+
+material FPSArmCameraDepth
+{
+	technique
+	{
+		pass
+		{
+			vertex_program_ref FPSArmSkinning_SMGen_VP 
+			{
+				param_named_auto worldMatrix3x4Array[0] world_matrix_array_3x4
+				param_named_auto viewProjectionMatrix viewproj_matrix
+				param_named_auto viewMatrix view_matrix				
+			}		    
+			fragment_program_ref GTP/Basic/CDepth_PS
+		    {
+		        param_named_auto farplane far_clip_distance
+		    }  
+		}
+	}
+}
+
 material phong3
 {
@@ -5,33 +68,41 @@
 		pass mainpass
 		{
-			depth_write on
 			cull_hardware none
-			
-			vertex_program_ref GTP/Basic/ShadedTex_VS
-			{
-				param_named_auto WorldViewProj worldviewproj_matrix
-				param_named_auto World world_matrix
-				param_named_auto WorldInv inverse_world_matrix
-			}
-			fragment_program_ref GTP/Basic/Shaded/TexturedTwoLights_PS
-			{
-				param_named_auto lightPos1 light_position 0
-				param_named_auto lightDir1 light_direction 0
-				param_named_auto lightColor1 light_diffuse_colour 0
-				param_named_auto lightPower1 light_power 0
-				
-				param_named_auto lightPos2 light_position 1
-				param_named_auto lightDir2 light_direction 1
-				param_named_auto lightColor2 light_diffuse_colour 1
-				param_named_auto lightPower2 light_power 1
-			}
-	
+			IllumTechniques
+			{
+				RenderTechnique Triggers
+				{
+					ILLUM_TRIGGER_SM_POINT FPSArmShadowMapGen_POINT
+					ILLUM_TRIGGER_CAMERADEPTH FPSArmCameraDepth
+				}
+			}
+			vertex_program_ref FPSArmSkinning_VP 
+			{
+			    param_named_auto worldMatrix3x4Array[0] world_matrix_array_3x4
+			    param_named_auto viewProjectionMatrix viewproj_matrix
+			    param_named_auto lightPos light_position 0
+			    param_named_auto cameraPos camera_position		
+			}
+			fragment_program_ref FPSArm_PS 
+			{
+			    param_named_auto lightRange light_attenuation 0
+   			    param_named_auto lightPower light_power 0
+   			    param_named_auto lightColor light_diffuse_colour 0
+   			    param_named specularity float 100
+   			    param_named albedo float 0.1
+   			    param_named specularColor float4 0 0 0 0   			
+			}
 			texture_unit basetexture
 			{
-				texture colortex.png				
-			}
-		}
-	}
-}
+			    texture FPSArmColor2.png
+			}
+			texture_unit bumptexture
+			{
+			    texture FPSArmNormal.png
+			}
+		}
+	}
+}
+
 
 vertex_program GTP/MoriaDemo/Sword_VS hlsl
Index: P/trunk/App/Demos/Illum/Ogre/Media/MORIA/trollvs.cg
===================================================================
--- /GTP/trunk/App/Demos/Illum/Ogre/Media/MORIA/trollvs.cg	(revision 2409)
+++ 	(revision )
@@ -1,63 +1,0 @@
-
-void trollSkinning_One_Weight_vp(
-	float4 position : POSITION,
-	float3 normal   : NORMAL,
-	float2 uv       : TEXCOORD0,
-	float3 tangent  : TANGENT,
-	float4  blendIdx : BLENDINDICES,
-	float4 blendWgt : BLENDWEIGHT,
-	out float4 oPosition : POSITION,
-	out float2 oUv       : TEXCOORD0,
-	//out float3 oTangent: TEXCOORD1,
-	//out float3 oBinormal: TEXCOORD2,
-	out float3 oNormal   : TEXCOORD3,
-	out float3 V: TEXCOORD4,
-	out float3 L: TEXCOORD5,
-	uniform float3x4   worldMatrix3x4Array[69],
-	uniform float4x4 viewProjectionMatrix,
-	uniform float4   lightPos,
-	uniform float4   cameraPos)
-{
-	// transform by indexed matrix
-	float4 blendPos = float4(0,0,0,1);
-	blendPos.xyz += mul(worldMatrix3x4Array[blendIdx[0]], position).xyz * blendWgt[0];
-	blendPos.xyz += mul(worldMatrix3x4Array[blendIdx[1]], position).xyz * blendWgt[1];
-	
-	// view / projection
-	oPosition = mul(viewProjectionMatrix, blendPos);
-	// transform normal
-	oNormal = mul((float3x3)worldMatrix3x4Array[blendIdx[0]], normal) * blendWgt[0];
-	oNormal += mul((float3x3)worldMatrix3x4Array[blendIdx[1]], normal) * blendWgt[1];
-	//oTangent = mul((float3x3)worldMatrix3x4Array[blendIdx], tangent);
-	oNormal = normalize(oNormal);
-//	oTangent = normalize(oTangent);
-//	oBinormal = cross(oTangent, oNormal);
-	// Lighting - support point and directional
-	L =  lightPos.xyz - blendPos.xyz * lightPos.w;
-	V =  cameraPos.xyz - blendPos.xyz;
-	
-	oUv = uv;	
-}	
-
-
-void trollSkinning_SMGen_One_Weight_vp(
-	float4 position : POSITION,
-	float4  blendIdx : BLENDINDICES,
-	float4 blendWgt : BLENDWEIGHT,	
-	out float4 oPosition : POSITION,
-	out float3 cPos:TEXCOORD0,	
-	// Support up to 24 bones of float3x4
-	// vs_1_1 only supports 96 params so more than this is not feasible
-	uniform float3x4   worldMatrix3x4Array[67],
-	uniform float4x4 viewMatrix,
-	uniform float4x4 viewProjectionMatrix)
-{
-	// transform by indexed matrix
-	float4 blendPos = float4(0,0,0,1);
-	blendPos.xyz += mul(worldMatrix3x4Array[blendIdx[0]], position).xyz * blendWgt[0];
-	blendPos.xyz += mul(worldMatrix3x4Array[blendIdx[1]], position).xyz * blendWgt[1];
-	
-	// view / projection
-	cPos = mul(viewMatrix, blendPos).xyz;
-	oPosition = mul(viewProjectionMatrix, blendPos);	
-}	
