summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl
diff options
context:
space:
mode:
authorOz Linden <oz@lindenlab.com>2013-11-11 16:40:22 -0500
committerOz Linden <oz@lindenlab.com>2013-11-11 16:40:22 -0500
commitd1b4c5bf734b6d30ba0bb5a3bda3a4494100cc6d (patch)
tree54a650e8e26dad00b3eaa3340b8bbf3083fc04b6 /indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl
parent5ca4a4b8f34342ef510a4241bef4af7cd544d865 (diff)
parentebc9bcbf69f7a519677a6522979a6bf6cbb04bb8 (diff)
merge changes for 3.6.10-release
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl')
-rwxr-xr-xindra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl15
1 files changed, 9 insertions, 6 deletions
diff --git a/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl b/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl
index efd0d03965..12996cf0d6 100755
--- a/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl
+++ b/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl
@@ -34,14 +34,17 @@ mat4 getObjectSkinnedTransform()
vec4 w = fract(weight4);
vec4 index = floor(weight4);
-
+
+ index = min(index, vec4(31.0));
+ index = max(index, vec4( 0.0));
+
float scale = 1.0/(w.x+w.y+w.z+w.w);
w *= scale;
-
- mat4 mat = matrixPalette[int(index.x)]*w.x;
- mat += matrixPalette[int(index.y)]*w.y;
- mat += matrixPalette[int(index.z)]*w.z;
- mat += matrixPalette[int(index.w)]*w.w;
+
+ mat4 mat = matrixPalette[int(index.x)]*w.x;
+ mat += matrixPalette[int(index.y)]*w.y;
+ mat += matrixPalette[int(index.z)]*w.z;
+ mat += matrixPalette[int(index.w)]*w.w;
return mat;
}