Use pose instead of boneTransform;

This commit is contained in:
bjorn 2017-11-20 18:12:08 -08:00
parent 54259f816c
commit 1a73fcb3cc
2 changed files with 8 additions and 7 deletions

View File

@ -36,7 +36,7 @@ static void renderNode(Model* model, int nodeIndex) {
Shader* shader = lovrGraphicsGetActiveShader();
if (shader) {
lovrShaderSetMatrix(shader, "lovrBoneTransforms", model->pose, MAX_BONES * 16);
lovrShaderSetMatrix(shader, "lovrPose", model->pose, MAX_BONES * 16);
}
for (int i = 0; i < node->primitives.length; i++) {

View File

@ -31,7 +31,7 @@ const char* lovrShaderVertexPrefix = ""
"uniform mat4 lovrTransform; \n"
"uniform mat3 lovrNormalMatrix; \n"
"uniform float lovrPointSize; \n"
"uniform mat4 lovrBoneTransforms[MAX_BONES]; \n"
"uniform mat4 lovrPose[MAX_BONES]; \n"
"#line 0 \n";
const char* lovrShaderFragmentPrefix = ""
@ -55,12 +55,13 @@ const char* lovrShaderVertexSuffix = ""
"void main() { \n"
" texCoord = lovrTexCoord; \n"
" vertexColor = lovrVertexColor; \n"
" mat4 boneTransform = lovrBoneTransforms[lovrBones[0]] * lovrBoneWeights[0]; \n"
" boneTransform += lovrBoneTransforms[lovrBones[1]] * lovrBoneWeights[1]; \n"
" boneTransform += lovrBoneTransforms[lovrBones[2]] * lovrBoneWeights[2]; \n"
" boneTransform += lovrBoneTransforms[lovrBones[3]] * lovrBoneWeights[3]; \n"
" mat4 pose = \n"
" lovrPose[lovrBones[0]] * lovrBoneWeights[0] + \n"
" lovrPose[lovrBones[1]] * lovrBoneWeights[1] + \n"
" lovrPose[lovrBones[2]] * lovrBoneWeights[2] + \n"
" lovrPose[lovrBones[3]] * lovrBoneWeights[3]; \n"
" gl_PointSize = lovrPointSize; \n"
" gl_Position = position(lovrProjection, lovrTransform, boneTransform * vec4(lovrPosition, 1.0)); \n"
" gl_Position = position(lovrProjection, lovrTransform, pose * vec4(lovrPosition, 1.0)); \n"
"}";
const char* lovrShaderFragmentSuffix = ""