Browse Source

solve issue #1879 (compile-time error in Skinning.glsllib) (#1942)

Stephen Gold 2 năm trước cách đây
mục cha
commit
2bf88a0d42

+ 5 - 3
jme3-core/src/main/resources/Common/ShaderLib/Skinning.glsllib

@@ -50,10 +50,12 @@ void Skinning_Compute(inout vec4 position, inout vec3 normal, inout vec3 tangent
     if (inHWBoneWeight.x != 0.0) {
 #if NUM_WEIGHTS_PER_VERT == 1
         position = m_BoneMatrices[int(inHWBoneIndex.x)] * position;
-        tangent = m_BoneMatrices[int(inHWBoneIndex.x)] * tangent;
-        normal = (mat3(m_BoneMatrices[int(inHWBoneIndex.x)][0].xyz,
+
+        mat3 rotMat = mat3(m_BoneMatrices[int(inHWBoneIndex.x)][0].xyz,
                        m_BoneMatrices[int(inHWBoneIndex.x)][1].xyz,
-                       m_BoneMatrices[int(inHWBoneIndex.x)][2].xyz) * normal);
+                       m_BoneMatrices[int(inHWBoneIndex.x)][2].xyz);
+        tangent = rotMat * tangent;
+        normal = rotMat * normal;
 #else
         mat4 mat = mat4(0.0);
         mat += m_BoneMatrices[int(inHWBoneIndex.x)] * inHWBoneWeight.x;