Procházet zdrojové kódy

Fixes an issue with mesh skinning when more than 3 blend weights (non-zero) are used.

Steve Grenier před 14 roky
rodič
revize
d65336b687

+ 2 - 2
gameplay/res/shaders/bumped-specular.vsh

@@ -59,7 +59,7 @@ vec4 getPosition()
     skinPosition(blendWeight, matrixIndex);
 
     blendWeight = a_blendWeights[3];
-    matrixIndex = int(a_blendIndices[2]) * 3;
+    matrixIndex = int(a_blendIndices[3]) * 3;
     skinPosition(blendWeight, matrixIndex);
 
     return _skinnedPosition;    
@@ -96,7 +96,7 @@ vec3 getTangentSpaceVector(vec3 vector)
     skinTangentSpaceVector(vector, blendWeight, matrixIndex);
 
     blendWeight = a_blendWeights[3];
-    matrixIndex = int(a_blendIndices[2]) * 3;
+    matrixIndex = int(a_blendIndices[3]) * 3;
     skinTangentSpaceVector(vector, blendWeight, matrixIndex);
 
     return _skinnedNormal;

+ 2 - 2
gameplay/res/shaders/bumped.vsh

@@ -56,7 +56,7 @@ vec4 getPosition()
     skinPosition(blendWeight, matrixIndex);
 
     blendWeight = a_blendWeights[3];
-    matrixIndex = int(a_blendIndices[2]) * 3;
+    matrixIndex = int(a_blendIndices[3]) * 3;
     skinPosition(blendWeight, matrixIndex);
 
     return _skinnedPosition;    
@@ -93,7 +93,7 @@ vec3 getTangentSpaceVector(vec3 vector)
     skinTangentSpaceVector(vector, blendWeight, matrixIndex);
 
     blendWeight = a_blendWeights[3];
-    matrixIndex = int(a_blendIndices[2]) * 3;
+    matrixIndex = int(a_blendIndices[3]) * 3;
     skinTangentSpaceVector(vector, blendWeight, matrixIndex);
 
     return _skinnedNormal;

+ 2 - 2
gameplay/res/shaders/colored-specular.vsh

@@ -57,7 +57,7 @@ vec4 getPosition()
     skinPosition(blendWeight, matrixIndex);
 
     blendWeight = a_blendWeights[3];
-    matrixIndex = int(a_blendIndices[2]) * 3;
+    matrixIndex = int(a_blendIndices[3]) * 3;
     skinPosition(blendWeight, matrixIndex);
 
     return _skinnedPosition;    
@@ -94,7 +94,7 @@ vec3 getNormal()
     skinNormal(blendWeight, matrixIndex);
 
     blendWeight = a_blendWeights[3];
-    matrixIndex = int(a_blendIndices[2]) * 3;
+    matrixIndex = int(a_blendIndices[3]) * 3;
     skinNormal(blendWeight, matrixIndex);
 
     return _skinnedNormal;

+ 2 - 2
gameplay/res/shaders/colored.vsh

@@ -53,7 +53,7 @@ vec4 getPosition()
     skinPosition(blendWeight, matrixIndex);
 
     blendWeight = a_blendWeights[3];
-    matrixIndex = int(a_blendIndices[2]) * 3;
+    matrixIndex = int(a_blendIndices[3]) * 3;
     skinPosition(blendWeight, matrixIndex);
 
     return _skinnedPosition;    
@@ -90,7 +90,7 @@ vec3 getNormal()
     skinNormal(blendWeight, matrixIndex);
 
     blendWeight = a_blendWeights[3];
-    matrixIndex = int(a_blendIndices[2]) * 3;
+    matrixIndex = int(a_blendIndices[3]) * 3;
     skinNormal(blendWeight, matrixIndex);
 
     return _skinnedNormal;

+ 2 - 2
gameplay/res/shaders/diffuse-specular.vsh

@@ -58,7 +58,7 @@ vec4 getPosition()
     skinPosition(blendWeight, matrixIndex);
 
     blendWeight = a_blendWeights[3];
-    matrixIndex = int(a_blendIndices[2]) * 3;
+    matrixIndex = int(a_blendIndices[3]) * 3;
     skinPosition(blendWeight, matrixIndex);
 
     return _skinnedPosition;    
@@ -95,7 +95,7 @@ vec3 getNormal()
     skinNormal(blendWeight, matrixIndex);
 
     blendWeight = a_blendWeights[3];
-    matrixIndex = int(a_blendIndices[2]) * 3;
+    matrixIndex = int(a_blendIndices[3]) * 3;
     skinNormal(blendWeight, matrixIndex);
 
     return _skinnedNormal;

+ 2 - 2
gameplay/res/shaders/diffuse.vsh

@@ -56,7 +56,7 @@ vec4 getPosition()
     skinPosition(blendWeight, matrixIndex);
 
     blendWeight = a_blendWeights[3];
-    matrixIndex = int(a_blendIndices[2]) * 3;
+    matrixIndex = int(a_blendIndices[3]) * 3;
     skinPosition(blendWeight, matrixIndex);
 
     return _skinnedPosition;    
@@ -93,7 +93,7 @@ vec3 getNormal()
     skinNormal(blendWeight, matrixIndex);
 
     blendWeight = a_blendWeights[3];
-    matrixIndex = int(a_blendIndices[2]) * 3;
+    matrixIndex = int(a_blendIndices[3]) * 3;
     skinNormal(blendWeight, matrixIndex);
 
     return _skinnedNormal;

+ 1 - 1
gameplay/res/shaders/textured.vsh

@@ -51,7 +51,7 @@ vec4 getPosition()
     skinPosition(blendWeight, matrixIndex);
 
     blendWeight = a_blendWeights[3];
-    matrixIndex = int(a_blendIndices[2]) * 3;
+    matrixIndex = int(a_blendIndices[3]) * 3;
     skinPosition(blendWeight, matrixIndex);
 
     return _skinnedPosition;