31 lines
546 B
GLSL
31 lines
546 B
GLSL
/**
|
|
* @file objectSkinV.glsl
|
|
*
|
|
* Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
|
|
* $License$
|
|
*/
|
|
|
|
#version 120
|
|
|
|
attribute vec4 object_weight;
|
|
|
|
uniform mat4 matrixPalette[32];
|
|
|
|
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;
|
|
}
|