/** * 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]); } }