فهرست منبع

* Actually fixed the issue with the tangents this time .. (TestTextureAtlas runs)

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@9206 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
Sha..rd 13 سال پیش
والد
کامیت
68da72cf66
1فایلهای تغییر یافته به همراه10 افزوده شده و 9 حذف شده
  1. 10 9
      engine/src/tools/jme3tools/optimize/GeometryBatchFactory.java

+ 10 - 9
engine/src/tools/jme3tools/optimize/GeometryBatchFactory.java

@@ -64,24 +64,25 @@ public class GeometryBatchFactory {
     
     private static void doTransformTangents(FloatBuffer inBuf, int offset, int components, FloatBuffer outBuf, Matrix4f transform) {
         Vector3f tan = new Vector3f();
-        float handedness;
         
         // offset is given in element units
         // convert to be in component units
         offset *= components;
 
         for (int i = 0; i < inBuf.capacity() / components; i++) {
-            tan.x = inBuf.get(i * 4 + 0);
-            tan.y = inBuf.get(i * 4 + 1);
-            tan.z = inBuf.get(i * 4 + 2);
-            handedness = inBuf.get(i * 4 + 3);
+            tan.x = inBuf.get(i * components + 0);
+            tan.y = inBuf.get(i * components + 1);
+            tan.z = inBuf.get(i * components + 2);
 
             transform.multNormal(tan, tan);
 
-            outBuf.put(offset + i * 4 + 0, tan.x);
-            outBuf.put(offset + i * 4 + 1, tan.y);
-            outBuf.put(offset + i * 4 + 2, tan.z);
-            outBuf.put(offset + i * 4 + 3, handedness);
+            outBuf.put(offset + i * components + 0, tan.x);
+            outBuf.put(offset + i * components + 1, tan.y);
+            outBuf.put(offset + i * components + 2, tan.z);
+            
+            if (components == 4){
+                outBuf.put(offset + i * components + 3, inBuf.get(i * components + 3));
+            }
         }
     }