コード例 #1
0
 /**
  * Fine settings used to set the light view and projection matrixes. This method is very important
  * as it allows to improve greatly quality without CPU additional charge. Try to set zFar and
  * zNear as best as you can. A good practice is to bind a camera instance to each node instance
  * used as root node for shadow map generation.
  *
  * @param cameraNodeInstance The node owning the camera
  * @param cameraIndex The indew of the camera in the node instance
  */
 @SuppressLint("NewApi")
 public void setCamera(final Node cameraNodeInstance, final int cameraIndex) {
   // android.util.Log.d(TAG,"setCamera("+cameraNodeInstance.id+","+cameraIndex+")");
   if (cameraNodeInstance.cameraInstances[cameraIndex].type == Camera.ORTHOGRAPHIC) {
     Matrix.orthoM(
         lightMvpCache,
         16,
         -cameraNodeInstance.cameraInstances[cameraIndex].settings[Camera.XMAG],
         cameraNodeInstance.cameraInstances[cameraIndex].settings[Camera.XMAG],
         -cameraNodeInstance.cameraInstances[cameraIndex].settings[Camera.YMAG],
         cameraNodeInstance.cameraInstances[cameraIndex].settings[Camera.YMAG],
         cameraNodeInstance.cameraInstances[cameraIndex].settings[Camera.ZNEAR],
         cameraNodeInstance.cameraInstances[cameraIndex].settings[Camera.ZFAR]);
   } else {
     MatrixUtils.perspectiveM(
         this.lightMvpCache,
         16,
         cameraNodeInstance.cameraInstances[cameraIndex].settings[Camera.YFOV],
         1,
         cameraNodeInstance.cameraInstances[cameraIndex].settings[Camera.ZNEAR],
         cameraNodeInstance.cameraInstances[cameraIndex].settings[Camera.ZFAR]);
   }
 }