summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings/shaders/class1/avatar
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2010-08-26 14:23:12 -0500
committerDave Parks <davep@lindenlab.com>2010-08-26 14:23:12 -0500
commit71de5f622a7917f78823a7e7840194e1b0f8f070 (patch)
tree1bfa580e5262ae6a8271ade6aee08f21a019c688 /indra/newview/app_settings/shaders/class1/avatar
parentfc7a3f6daab94331aab52983caee5c68db8cd772 (diff)
Add missing files from viewer-experimental
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/avatar')
-rw-r--r--indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl30
1 files changed, 30 insertions, 0 deletions
diff --git a/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl b/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl
new file mode 100644
index 0000000000..eef6556fba
--- /dev/null
+++ b/indra/newview/app_settings/shaders/class1/avatar/objectSkinV.glsl
@@ -0,0 +1,30 @@
+/**
+ * @file objectSkinV.glsl
+ *
+ * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+#version 120
+
+attribute vec4 object_weight;
+
+uniform mat4 matrixPalette[64];
+
+mat4 getObjectSkinnedTransform()
+{
+ int i;
+
+ vec4 w = fract(object_weight);
+ vec4 index = floor(object_weight);
+
+ 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;
+
+ return mat;
+}