Index: /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturingPointBasedGeneration_FP20.cg
===================================================================
--- /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturingPointBasedGeneration_FP20.cg	(revision 786)
+++ /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturingPointBasedGeneration_FP20.cg	(revision 786)
@@ -0,0 +1,6 @@
+void main(float4 colour: COLOR0,
+	  uniform float textureSize,
+          out float4 ocolor: COLOR)
+{
+	ocolor = float4(0.0, 0.0, 1.0 - (1.0/textureSize), 1.0 - (1.0/textureSize));
+}
Index: /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturing_hlsl_FP20.shd
===================================================================
--- /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturing_hlsl_FP20.shd	(revision 786)
+++ /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturing_hlsl_FP20.shd	(revision 786)
@@ -0,0 +1,33 @@
+sampler indirectTexture: register(s0);
+sampler leaf: register(s1);
+
+float4 main_fp(float2 posS: TEXCOORD0, float2 posT: TEXCOORD1) : COLOR
+{
+   float4 leafColor;
+   float4 ocolor;
+   float epsilon = 1.0/255.0;
+   float2 coords;
+
+   coords = abs((posS) - ( tex2D(indirectTexture, posT).xy + float2(-epsilon, epsilon) ) );
+
+   if ((tex2D(indirectTexture, posT).z) != 0.0) 
+   {	   
+	//leafColor = float4(tex2D(leaf, coords / (1.0 / 32.0) - float2(0.5,0.5)).xyzw);
+	leafColor = float4(tex2D(leaf, coords / (1.0 / 16.0) - float2(0.25,0.25)).xyzw);
+
+	//leafColor = float4(tex2D(leaf, coords / (1.0 / 32.0) - float2(0.5,0.5)).xyz, 1.0);
+	//leafColor = float4(tex2D(leaf, coords / (1.0 / 16.0) - float2(0.25,0.25)).xyz, 1.0);
+   }
+   else
+   {
+	leafColor = 0.0;
+   }
+
+   // Decal with quad...
+   //leafColor = float4(coords / (1.0 / 32.0), 0.0, leafColor.w);
+
+   ocolor = leafColor;
+ 
+   return  ocolor;
+}
+
Index: /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturing_hlsl_VP20.shd
===================================================================
--- /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturing_hlsl_VP20.shd	(revision 786)
+++ /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturing_hlsl_VP20.shd	(revision 786)
@@ -0,0 +1,22 @@
+struct VS_OUTPUT {
+   float4 Pos:       POSITION;
+   float2 subTexCoord: TEXCOORD0;
+   float2 texCoord:  TEXCOORD1;
+};
+
+
+float4x4 worldviewproj;
+
+VS_OUTPUT main_vp(
+      float4 position: POSITION,
+      float2 subTexCoord: TEXCOORD0,
+      float2 texCoord: TEXCOORD1
+      )
+{
+	VS_OUTPUT Out;
+
+	Out.Pos = mul(worldviewproj, position);
+	Out.texCoord = texCoord;
+	Out.subTexCoord = subTexCoord;
+	return Out;
+}
Index: /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/general.program
===================================================================
--- /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/general.program	(revision 786)
+++ /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/general.program	(revision 786)
@@ -0,0 +1,76 @@
+vertex_program diffuseTextureScreenAligned_VP20 cg
+{
+	source diffuseTextureScreenAligned_VP20.cg
+	entry_point main_vp
+	profiles arbvp1 vs_2_0
+}
+
+fragment_program diffuseTextureScreenAligned_FP20 cg
+{
+	source diffuseTextureScreenAligned_FP20.cg
+	entry_point main_fp
+	profiles ps_2_0 arbfp1
+}
+
+fragment_program indirectTexturingDebugEntityPosition_FP20 cg
+{
+	source indirectTexturingDebugEntityPosition_FP20.cg
+	entry_point main_fp
+	profiles ps_2_0 arbfp1
+}
+
+fragment_program indirectTexturingDebugTextureAtlasFitting_FP20 cg
+{
+	source indirectTexturingDebugTextureAtlasFitting_FP20.cg
+	entry_point main_fp
+	profiles ps_2_0 arbfp1
+}
+
+fragment_program diffuse_FP20 cg
+{
+	source diffuse_FP20.cg
+	entry_point main_fp
+	profiles ps_2_0 arbfp1
+}
+
+fragment_program indirectTexturingPointBasedGeneration_FP20 cg
+{
+	source indirectTexturingPointBasedGeneration_FP20.cg
+	entry_point main
+	profiles ps_2_0 arbfp1
+}
+
+vertex_program indirectTexturing_VP20 cg
+{
+	source indirectTexturing_VP20.cg
+	entry_point main_vp
+	profiles vs_2_0 arbvp1
+}
+
+fragment_program indirectTexturing_FP20 cg
+{
+	source indirectTexturing_FP20.cg
+	entry_point main_fp
+        profiles ps_2_0 arbfp1
+}
+
+vertex_program indirectTexturing_hlsl_VP20 hlsl
+{
+	source indirectTexturing_hlsl_VP20.shd
+	entry_point main_vp
+	target vs_2_0
+}
+
+fragment_program indirectTexturing_hlsl_FP20 hlsl
+{
+	source indirectTexturing_hlsl_FP20.shd
+	entry_point main_fp
+	target ps_2_0 
+}
+
+fragment_program indirectTexturingDebugTexCoordCorrespondence_FP20 cg
+{
+	source indirectTexturingDebugTexCoordCorrespondence_FP20.cg
+	entry_point main_fp
+	profiles ps_2_0 arbfp1 
+}
Index: /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturingDebugEntityPosition_FP20.cg
===================================================================
--- /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturingDebugEntityPosition_FP20.cg	(revision 786)
+++ /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturingDebugEntityPosition_FP20.cg	(revision 786)
@@ -0,0 +1,33 @@
+void main_fp(float2 texCoord: TEXCOORD0, 
+	     float2 subTexCoord: TEXCOORD1,
+	     float4 position : WPOS,
+	     float4 colour: COLOR0,
+             out float4 ocolor: COLOR,
+             uniform sampler2D texture)
+{
+	// Normalmap
+	//normal = normalize(normal);
+	// Convert from [-1,1] to [0,1]
+	//ocolor.r = (normal.r + 1.0) / 2.0;
+	//ocolor.g = (normal.g + 1.0) / 2.0;
+	//ocolor.b = (normal.b + 1.0) / 2.0;
+	//ocolor.a = tex2D(textura,texCoord).a;
+
+	// Depthmap
+	//ocolor.r = position.z;
+	//ocolor.g = position.z;
+	//ocolor.b = position.z;
+	//ocolor.a = 1.0;
+
+	// Texture
+        ocolor.r = tex2D(texture, subTexCoord).r;
+	ocolor.g = tex2D(texture, subTexCoord).g;
+	ocolor.b = tex2D(texture, subTexCoord).b;
+	ocolor.a = tex2D(texture, subTexCoord).b;
+
+	// Debug
+	//ocolor = ocolor + float4(colour.xyz,1.0);
+
+	// Colour
+        //ocolor = colour;
+}
Index: /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturingDebugTexCoordCorrespondence_FP20.cg
===================================================================
--- /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturingDebugTexCoordCorrespondence_FP20.cg	(revision 786)
+++ /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturingDebugTexCoordCorrespondence_FP20.cg	(revision 786)
@@ -0,0 +1,12 @@
+sampler indirectTexture: register(s0);
+
+void main_fp(float2 posS: TEXCOORD0, 
+             float2 posT: TEXCOORD1,
+             out float4 ocolor: COLOR,
+             uniform sampler2D indirectTexture)
+{
+
+   float2 coords = posS + (float2(1.0, 1.0) - tex2D(indirectTexture, posT).xy); 
+   ocolor = float4(coords, 0.0, 1.0);
+}
+
Index: /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/diffuse_FP20.cg
===================================================================
--- /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/diffuse_FP20.cg	(revision 786)
+++ /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/diffuse_FP20.cg	(revision 786)
@@ -0,0 +1,33 @@
+void main_fp(float2 texCoord: TEXCOORD0, 
+	     float2 subTexCoord: TEXCOORD1,
+	     float4 position : WPOS,
+	     float4 colour: COLOR0,
+             out float4 ocolor: COLOR,
+             uniform sampler2D texture)
+{
+	// Normalmap
+	//normal = normalize(normal);
+	// Convert from [-1,1] to [0,1]
+	//ocolor.r = (normal.r + 1.0) / 2.0;
+	//ocolor.g = (normal.g + 1.0) / 2.0;
+	//ocolor.b = (normal.b + 1.0) / 2.0;
+	//ocolor.a = tex2D(textura,texCoord).a;
+
+	// Depthmap
+	//ocolor.r = position.z;
+	//ocolor.g = position.z;
+	//ocolor.b = position.z;
+	//ocolor.a = 1.0;
+
+	// Texture
+        ocolor.r = tex2D(texture, subTexCoord).r;
+	ocolor.g = tex2D(texture, subTexCoord).g;
+	ocolor.b = tex2D(texture, subTexCoord).b;
+	ocolor.a = tex2D(texture, subTexCoord).a;
+
+	// Debug
+	//ocolor = ocolor + float4(colour.xyz,1.0);
+
+	// Colour
+        //ocolor = colour;
+}
Index: /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/diffuseTextureScreenAligned_FP20.cg
===================================================================
--- /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/diffuseTextureScreenAligned_FP20.cg	(revision 786)
+++ /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/diffuseTextureScreenAligned_FP20.cg	(revision 786)
@@ -0,0 +1,33 @@
+void main_fp(float2 texCoord: TEXCOORD0, 
+	     float2 subTexCoord: TEXCOORD1,
+	     float4 position : WPOS,
+	     float4 colour: COLOR0,
+             out float4 ocolor: COLOR,
+             uniform sampler2D texture)
+{
+	// Normalmap
+	//normal = normalize(normal);
+	// Convert from [-1,1] to [0,1]
+	//ocolor.r = (normal.r + 1.0) / 2.0;
+	//ocolor.g = (normal.g + 1.0) / 2.0;
+	//ocolor.b = (normal.b + 1.0) / 2.0;
+	//ocolor.a = tex2D(textura,texCoord).a;
+
+	// Depthmap
+	//ocolor.r = position.z;
+	//ocolor.g = position.z;
+	//ocolor.b = position.z;
+	//ocolor.a = 1.0;
+
+	// Texture
+        ocolor.r = tex2D(texture, texCoord).r;
+	ocolor.g = tex2D(texture, texCoord).g;
+	ocolor.b = tex2D(texture, texCoord).b;
+	ocolor.a = tex2D(texture, texCoord).a;
+
+	// Debug
+	//ocolor = ocolor + float4(colour.xyz,1.0);
+
+	// Colour
+        //ocolor = colour;
+}
Index: /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/diffuseTextureScreenAligned_VP20.cg
===================================================================
--- /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/diffuseTextureScreenAligned_VP20.cg	(revision 786)
+++ /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/diffuseTextureScreenAligned_VP20.cg	(revision 786)
@@ -0,0 +1,22 @@
+void main_vp(
+      float4 position: POSITION,
+      float4 normal: NORMAL,
+      float2 texCoord : TEXCOORD0,
+      float4 colour: COLOR0,
+      out float4 oPosition: POSITION,
+      out float4 oColour: COLOR0,
+      //out float4 oNormal: TEXCOORD1,
+      out float2 oTexCoord : TEXCOORD0,
+      uniform float4x4 worldmatrix,
+      uniform float4x4 viewmatrix,
+      uniform float4x4 projectionmatrix
+      //uniform float4x4 invtransworldview
+      )
+{
+	float4x4 m1 = mul(viewmatrix,worldmatrix);
+	float4x4 m2 = mul(projectionmatrix,m1);
+	oPosition = mul(m2,position);
+	//oNormal = mul(invtransworldview,normal);
+	oColour = colour;
+	oTexCoord = texCoord;
+}
Index: /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/general.material
===================================================================
--- /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/general.material	(revision 786)
+++ /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/general.material	(revision 786)
@@ -0,0 +1,24 @@
+material billboardCloudIndirectPointMaterial
+{
+	technique
+	{
+		pass
+		{
+			fragment_program_ref indirectTexturingPointBasedGeneration_FP20
+			{
+			}
+			
+			polygon_mode points
+			point_size 1.0
+			cull_software none
+			cull_hardware none
+			lighting off
+
+			texture_unit
+			{
+				texture customNormalMap128x128.png
+				filtering none none none
+			}
+		}
+	}
+}
Index: /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturing_FP20.cg
===================================================================
--- /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturing_FP20.cg	(revision 786)
+++ /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturing_FP20.cg	(revision 786)
@@ -0,0 +1,31 @@
+void main_fp(float2 posS: TEXCOORD0, 
+             float2 posT: TEXCOORD1,
+	     uniform sampler2D indirectTexture,
+	     uniform sampler2D leaf,
+	     out float4 ocolor: COLOR)
+{
+   float4 leafColor;
+   float epsilon = 1.0/255.0;
+   float2 coords;
+
+   coords = abs((posS) - ( tex2D(indirectTexture, posT).xy + float2(-epsilon, epsilon) ) );
+
+   if (tex2D(indirectTexture, posT).z != 0.0) 
+   {	   
+	//leafColor = float4(tex2D(leaf, coords / (1.0 / 32.0) - float2(0.5,0.5)).xyzw);
+	leafColor = float4(tex2D(leaf, coords / (1.0 / 16.0) - float2(0.25,0.25)).xyzw);
+
+	//leafColor = float4(tex2D(leaf, coords / (1.0 / 32.0) - float2(0.5,0.5)).xyz, 1.0);
+	//leafColor = float4(tex2D(leaf, coords / (1.0 / 16.0) - float2(0.25,0.25)).xyz, 1.0);
+   }
+   else
+   {
+	leafColor = 0.0;
+   }
+
+   // Decal with quad...
+   //leafColor = float4(coords / (1.0 / 32.0), 0.0, leafColor.w);
+
+   ocolor = leafColor;
+}
+
Index: /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturing_VP20.cg
===================================================================
--- /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturing_VP20.cg	(revision 786)
+++ /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturing_VP20.cg	(revision 786)
@@ -0,0 +1,14 @@
+void main_vp(
+      float4 position: POSITION,
+      float2 subTexCoord: TEXCOORD0,
+      float2 texCoord: TEXCOORD1,
+      uniform float4x4 worldviewproj,
+      out float4 oposition: POSITION,
+      out float2 osubTexCoord: TEXCOORD0,
+      out float2 otexCoord: TEXCOORD1
+      )
+{
+	oposition = mul(worldviewproj, position);
+	otexCoord = texCoord;
+	osubTexCoord = subTexCoord;
+}
Index: /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturingDebugTextureAtlasFitting_FP20.cg
===================================================================
--- /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturingDebugTextureAtlasFitting_FP20.cg	(revision 786)
+++ /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/media/general/indirectTexturingDebugTextureAtlasFitting_FP20.cg	(revision 786)
@@ -0,0 +1,9 @@
+void main_fp(float2 texCoord: TEXCOORD0, 
+	     float2 subTexCoord: TEXCOORD1,
+             out float4 ocolor: COLOR,
+             uniform sampler2D indirectTexture)
+{
+   float epsilon = 1.0/256.0;
+
+   ocolor = ( ( (tex2D(indirectTexture,subTexCoord).x - epsilon) != 0.0) && ( (tex2D(indirectTexture,subTexCoord).y + epsilon) != 0.0) ) ? float4(0.3, 0.3, 0.3, 1.0) : float4(1.0, 0.0, 0.0, 1.0);
+}
Index: /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/include/LBBC/LBBCClusterViewMode.h
===================================================================
--- /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/include/LBBC/LBBCClusterViewMode.h	(revision 751)
+++ /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/include/LBBC/LBBCClusterViewMode.h	(revision 786)
@@ -39,4 +39,5 @@
 			//Ogre::Entity* eLeafClustersGrouped = mSceneMgr->createEntity(mEntityClustersMeshName, mEntityClustersMeshName);					
 			Ogre::Entity* eLeafClustersGrouped = mSceneMgr->createEntity("chestnutLeafClustersGrouped.mesh", "chestnutLeafClustersGrouped.mesh");								
+			//Ogre::Entity* eLeafClustersGrouped = mSceneMgr->createEntity("mapleLeafClustersGrouped.mesh", "mapleLeafClustersGrouped.mesh");								
 			sNode->attachObject(eLeafClustersGrouped);			
 			sNode->rotate(Ogre::Vector3::UNIT_X, Ogre::Radian(Ogre::Degree(-90.0)));
Index: /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/include/LBBC/LBBCBillboardViewMode.h
===================================================================
--- /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/include/LBBC/LBBCBillboardViewMode.h	(revision 751)
+++ /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/include/LBBC/LBBCBillboardViewMode.h	(revision 786)
@@ -53,5 +53,6 @@
 			Ogre::SceneNode* sNode = mSceneMgr->getRootSceneNode()->createChildSceneNode();
 			//mBillboardCloudEntity = mSceneMgr->createEntity(mBillboardCloudMeshName, mBillboardCloudMeshName);		
-			mBillboardCloudEntity = mSceneMgr->createEntity("chestnutLeavesBillboardCloudGrouped.mesh", "chestnutLeavesBillboardCloudGrouped.mesh");		
+			mBillboardCloudEntity = mSceneMgr->createEntity("chestnutLeavesBillboardCloudGrouped.mesh", "chestnutLeavesBillboardCloudGrouped.mesh");
+			//mBillboardCloudEntity = mSceneMgr->createEntity("mapleLeavesBillboardCloudGrouped.mesh", "mapleLeavesBillboardCloudGrouped.mesh");		
 			sNode->attachObject(mBillboardCloudEntity);
 			sNode->rotate(Ogre::Vector3::UNIT_X, Ogre::Radian(Ogre::Degree(-90.0)));
Index: /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/src/LBBCBillboardKMeansClusterData.cpp
===================================================================
--- /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/src/LBBCBillboardKMeansClusterData.cpp	(revision 751)
+++ /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/src/LBBCBillboardKMeansClusterData.cpp	(revision 786)
@@ -181,16 +181,4 @@
 	if (iBillboardGroup >= 0)
 	{		
-		//uvMapMin = billboardNode->ToElement()->InsertEndChild(TiXmlElement("uvMapMin"))->ToElement();
-		//Ogre::String sUvMapMinX = Ogre::StringConverter::toString(this->getBillboardUVMapMin(iBillboardGroup).x);
-		//uvMapMin->ToElement()->SetAttribute("x",sUvMapMinX.c_str());
-		//Ogre::String sUvMapMinY = Ogre::StringConverter::toString(this->getBillboardUVMapMin(iBillboardGroup).y);
-		//uvMapMin->ToElement()->SetAttribute("y",sUvMapMinY.c_str());
-
-		//uvMapMax = billboardNode->ToElement()->InsertEndChild(TiXmlElement("uvMapMax"))->ToElement();
-		//Ogre::String suvMapMaxX = Ogre::StringConverter::toString(this->getBillboardUVMapMax(iBillboardGroup).x);
-		//uvMapMax->ToElement()->SetAttribute("x",suvMapMaxX.c_str());
-		//Ogre::String suvMapMaxY = Ogre::StringConverter::toString(this->getBillboardUVMapMax(iBillboardGroup).y);
-		//uvMapMax->ToElement()->SetAttribute("y",suvMapMaxY.c_str());
-
 		uvMapMin = billboardNode->ToElement()->InsertEndChild(TiXmlElement("uvMapMin"))->ToElement();
 		Ogre::String sUvMapMinX = Ogre::StringConverter::toString(this->getBillboardUVMapMin(0).x);
Index: /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/src/BBCBillboardCloud.cpp
===================================================================
--- /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/src/BBCBillboardCloud.cpp	(revision 751)
+++ /GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/src/BBCBillboardCloud.cpp	(revision 786)
@@ -102,11 +102,11 @@
 			vFaceA1.position = billboard->getBillboardClusterData()->getQuadTopLeftCorner();
 			vFaceA1.normal = billboard->getBillboardClusterData()->getNormal();
-			vFaceA1.uv[0] = Ogre::Vector3(0,0,0);
+			vFaceA1.uv[0] = Ogre::Vector3(1.0 , 0.0, 0.0);
 			vFaceA2.position = billboard->getBillboardClusterData()->getQuadTopRightCorner();
 			vFaceA2.normal = billboard->getBillboardClusterData()->getNormal();
-			vFaceA2.uv[0] = Ogre::Vector3(1,0,0);
+			vFaceA2.uv[0] = Ogre::Vector3(0.0, 0.0, 0.0);
 			vFaceA3.position = billboard->getBillboardClusterData()->getQuadBottomRightCorner();
 			vFaceA3.normal = billboard->getBillboardClusterData()->getNormal();
-			vFaceA3.uv[0] = Ogre::Vector3(1,1,0);
+			vFaceA3.uv[0] = Ogre::Vector3(0.0 ,1.0 ,0.0);
 
 			// Face B of the billboard quad
@@ -114,11 +114,11 @@
 			vFaceB1.position = billboard->getBillboardClusterData()->getQuadBottomRightCorner();
 			vFaceB1.normal = billboard->getBillboardClusterData()->getNormal();
-			vFaceB1.uv[0] = Ogre::Vector3(1,1,0);
+			vFaceB1.uv[0] = Ogre::Vector3(0.0, 1.0 ,0.0);
 			vFaceB2.position = billboard->getBillboardClusterData()->getQuadBottomLeftCorner();
 			vFaceB2.normal = billboard->getBillboardClusterData()->getNormal();
-			vFaceB2.uv[0] = Ogre::Vector3(0,1,0);
+			vFaceB2.uv[0] = Ogre::Vector3(1.0, 1.0, 0.0);
 			vFaceB3.position = billboard->getBillboardClusterData()->getQuadTopLeftCorner();
 			vFaceB3.normal = billboard->getBillboardClusterData()->getNormal();
-			vFaceB3.uv[0] = Ogre::Vector3(0,0,0);
+			vFaceB3.uv[0] = Ogre::Vector3(1.0, 0.0, 0.0);
 
 			subEntity->addUniqueVertex(vFaceA1);
