code: static GVROrthogonalCamera makeOrthoShadowCamera(GVRPerspectiveCamera centerCam)
      {
          GVROrthogonalCamera shadowCam = new GVROrthogonalCamera(centerCam.getGVRContext());
          float near = centerCam.getNearClippingDistance();
          float far = centerCam.getFarClippingDistance();
          float fovy = (float) Math.toRadians(centerCam.getFovY());
          float h = (float) (Math.atan(fovy / 2.0f) * far) / 2.0f;
  
          shadowCam.setLeftClippingDistance(-h);
          shadowCam.setRightClippingDistance(h);
          shadowCam.setTopClippingDistance(h);
          shadowCam.setBottomClippingDistance(-h);
          shadowCam.setNearClippingDistance(near);
          shadowCam.setFarClippingDistance(far);
          return shadowCam;
      }
docs: Adds an orthographic camera constructed from the designated
  perspective camera to describe the shadow projection.
  The field of view and aspect ration of the perspective
  camera are used to obtain the view volume of the
  orthographic camera. This type of camera is used
  for shadows generated by direct lights at infinite distance.
  @param centerCam GVRPerspectiveCamera to derive shadow projection from
  @return Orthographic camera to use for shadow casting
  @see GVRDirectLight