瀏覽代碼

Re-introduced WorldMatrixInverseTranspose in UniformBindingManager

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@9603 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
rem..om 13 年之前
父節點
當前提交
91f2353a57
共有 1 個文件被更改,包括 6 次插入5 次删除
  1. 6 5
      engine/src/core/com/jme3/shader/UniformBindingManager.java

+ 6 - 5
engine/src/core/com/jme3/shader/UniformBindingManager.java

@@ -4,10 +4,10 @@
  */
  */
 package com.jme3.shader;
 package com.jme3.shader;
 
 
+import com.jme3.material.Material;
 import com.jme3.math.*;
 import com.jme3.math.*;
 import com.jme3.renderer.Camera;
 import com.jme3.renderer.Camera;
 import com.jme3.renderer.RenderManager;
 import com.jme3.renderer.RenderManager;
-import com.jme3.renderer.ViewPort;
 import com.jme3.system.Timer;
 import com.jme3.system.Timer;
 import java.util.List;
 import java.util.List;
 
 
@@ -39,6 +39,7 @@ public class UniformBindingManager {
     private Matrix4f worldViewProjMatrix = new Matrix4f();
     private Matrix4f worldViewProjMatrix = new Matrix4f();
     private Matrix3f normalMatrix = new Matrix3f();
     private Matrix3f normalMatrix = new Matrix3f();
     private Matrix4f worldMatrixInv = new Matrix4f();
     private Matrix4f worldMatrixInv = new Matrix4f();
+    private Matrix3f worldMatrixInvTrsp = new Matrix3f();
     private Matrix4f viewMatrixInv = new Matrix4f();
     private Matrix4f viewMatrixInv = new Matrix4f();
     private Matrix4f projMatrixInv = new Matrix4f();
     private Matrix4f projMatrixInv = new Matrix4f();
     private Matrix4f viewProjMatrixInv = new Matrix4f();
     private Matrix4f viewProjMatrixInv = new Matrix4f();
@@ -95,9 +96,9 @@ public class UniformBindingManager {
                     u.setValue(VarType.Matrix4, worldMatrixInv);
                     u.setValue(VarType.Matrix4, worldMatrixInv);
                     break;
                     break;
                 case WorldMatrixInverseTranspose:
                 case WorldMatrixInverseTranspose:
-//                    worldMatrix.toRotationMatrix(tempMat3);
-//                    tempMat3.invertLocal().transposeLocal();
-//                    u.setValue(VarType.Matrix3, tempMat3, true);
+                    worldMatrix.toRotationMatrix(worldMatrixInvTrsp);
+                    worldMatrixInvTrsp.invertLocal().transposeLocal();
+                    u.setValue(VarType.Matrix3, worldMatrixInvTrsp);
                     break;
                     break;
                 case ViewMatrixInverse:
                 case ViewMatrixInverse:
                     viewMatrixInv.set(viewMatrix);
                     viewMatrixInv.set(viewMatrix);
@@ -217,7 +218,7 @@ public class UniformBindingManager {
         far = cam.getFrustumFar();
         far = cam.getFrustumFar();
     }
     }
 
 
-    public void setViewPort(int viewX, int viewY, int viewWidth, int viewHeight) {    
+    public void setViewPort(int viewX, int viewY, int viewWidth, int viewHeight) {
         this.viewX = viewX;
         this.viewX = viewX;
         this.viewY = viewY;
         this.viewY = viewY;
         this.viewWidth = viewWidth;
         this.viewWidth = viewWidth;