Forráskód Böngészése

making VRViewManagerOSVR more similar to VRViewManagerOpenVR

Rickard Edén 8 éve
szülő
commit
ffed048472
1 módosított fájl, 19 hozzáadás és 108 törlés
  1. 19 108
      jme3-vr/src/main/java/com/jme3/util/VRViewManagerOSVR.java

+ 19 - 108
jme3-vr/src/main/java/com/jme3/util/VRViewManagerOSVR.java

@@ -50,18 +50,6 @@ import com.sun.jna.ptr.PointerByReference;
 public class VRViewManagerOSVR extends AbstractVRViewManager{
 	private static final Logger logger = Logger.getLogger(VRViewManagerOpenVR.class.getName());
     
-    private Camera leftCamera;
-    private ViewPort leftViewport;
-    private FilterPostProcessor leftPostProcessor;
-    private Texture2D leftEyeTexture;
-    private Texture2D leftEyeDepth;
-    
-    private Camera rightCamera;
-    private ViewPort rightViewport;
-    private FilterPostProcessor rightPostProcessor;
-    private Texture2D rightEyeTexture;
-    private Texture2D rightEyeDepth;
-    
     // OpenVR values  
     private Texture_t leftTextureType;
     private Texture_t rightTextureType;
@@ -73,15 +61,10 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{
     OSVR_ViewportDescription.ByValue osvr_viewDescRight;
     Pointer osvr_rmBufferState;
     
-    //private static boolean useCustomDistortion;
-    private float heightAdjustment;
-
     private Texture2D dualEyeTex;
 
     private final PointerByReference grabRBS = new PointerByReference();
     
-    private float resMult = 1f;
-    
     //final & temp values for camera calculations
     private final Vector3f finalPosition   = new Vector3f();
     private final Quaternion finalRotation = new Quaternion();
@@ -96,42 +79,6 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{
     	this.environment = environment;
     }
     
-    /**
-     * Get the {@link Camera camera} attached to the left eye.
-     * @return the {@link Camera camera} attached to the left eye.
-     * @see #getRightCamera()
-     */
-    public Camera getLeftCamera() {
-        return leftCamera;
-    }
-    
-    /**
-     * Get the {@link Camera camera} attached to the right eye.
-     * @return the {@link Camera camera} attached to the right eye.
-     * @see #getLeftCamera()
-     */
-    public Camera getRightCamera() {
-        return rightCamera;
-    }
-    
-    /**
-     * Get the {@link ViewPort viewport} attached to the left eye.
-     * @return the {@link ViewPort viewport} attached to the left eye.
-     * @see #getRightViewPort()
-     */
-    public ViewPort getLeftViewPort() {
-        return leftViewport;
-    }
-    
-    /**
-     * Get the {@link ViewPort viewport} attached to the right eye.
-     * @return the {@link ViewPort viewport} attached to the right eye.
-     * @see #getLeftViewPort()
-     */
-    public ViewPort getRightViewPort() {
-        return rightViewport;
-    }
-    
     /**
      * Get the identifier of the left eye texture.
      * @return the identifier of the left eye texture.
@@ -162,42 +109,6 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{
         return (int)dualEyeTex.getImage().getId();
     }
     
-    /**
-     * Get the height adjustment to apply to the cameras before rendering.
-     * @return the height adjustment to apply to the cameras before rendering.
-     * @see #setHeightAdjustment(float)
-     */
-    public float getHeightAdjustment() {
-        return heightAdjustment;
-    }
-    
-    /**
-     * Set the height adjustment to apply to the cameras before rendering.
-     * @param amount the height adjustment to apply to the cameras before rendering.
-     * @see #getHeightAdjustment()
-     */
-    public void setHeightAdjustment(float amount) {
-        heightAdjustment = amount;
-    }
-    
-    /**
-     * Get the resolution multiplier.
-     * @return the resolution multiplier.
-     * @see #setResolutionMultiplier(float)
-     */
-    public float getResolutionMuliplier() {
-        return resMult;
-    }
-    
-    /**
-     * Set the resolution multiplier.
-     * @param resMult the resolution multiplier.
-     * @see #getResolutionMuliplier()
-     */
-    public void setResolutionMultiplier(float resMult) {
-        this.resMult = resMult;
-    }
-    
     /**
      * Initialize the system binds of the textures.
      */
@@ -442,8 +353,8 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{
             
             // other adjustments
             size.x *= xMult;
-            size.x *= resMult;
-            size.y *= resMult;
+            size.x *= getResolutionMuliplier();
+            size.y *= getResolutionMuliplier();
             
             if( cam.getWidth() != size.x || cam.getHeight() != size.y ){
             	cam.resize((int)size.x, (int)size.y, false);
@@ -469,10 +380,10 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{
     	            return;
     	        }
     	        
-    	        leftEyeTexture  = (Texture2D) leftViewport.getOutputFrameBuffer().getColorBuffer().getTexture();
-    	        rightEyeTexture = (Texture2D)rightViewport.getOutputFrameBuffer().getColorBuffer().getTexture();        
-    	        leftEyeDepth    = (Texture2D) leftViewport.getOutputFrameBuffer().getDepthBuffer().getTexture();
-    	        rightEyeDepth   = (Texture2D)rightViewport.getOutputFrameBuffer().getDepthBuffer().getTexture();        
+    	        leftEyeTexture  = (Texture2D) getLeftViewPort().getOutputFrameBuffer().getColorBuffer().getTexture();
+    	        rightEyeTexture = (Texture2D)getRightViewPort().getOutputFrameBuffer().getColorBuffer().getTexture();        
+    	        leftEyeDepth    = (Texture2D) getLeftViewPort().getOutputFrameBuffer().getDepthBuffer().getTexture();
+    	        rightEyeDepth   = (Texture2D)getRightViewPort().getOutputFrameBuffer().getDepthBuffer().getTexture();        
     	      
     	        // main viewport is either going to be a distortion scene or nothing
     	        // mirroring is handled by copying framebuffers
@@ -587,7 +498,7 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{
         if( obsPosition != null ){
         	finalPosition.addLocal(obsPosition);
         }
-        finalPosition.y += heightAdjustment;
+        finalPosition.y += getHeightAdjustment();
         cam.setFrame(finalPosition, finalRotation);
     }
     
@@ -595,7 +506,7 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{
      * Handles moving filters from the main view to each eye
      */
     public void moveScreenProcessingToEyes() {
-        if( rightViewport == null ){
+        if( getRightViewPort() == null ){
         	return;
         }
         
@@ -617,7 +528,7 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{
      * @param sourceViewport the {@link ViewPort viewport} that contains the processors to use.
      */
     public void syncScreenProcessing(ViewPort sourceViewport) {
-        if( rightViewport == null ){
+        if( getRightViewPort() == null ){
         	return;
         }
         
@@ -631,13 +542,13 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{
     	        // clear out all filters & processors, to start from scratch
     	        rightPostProcessor.removeAllFilters();
     	        leftPostProcessor.removeAllFilters();
-    	        leftViewport.clearProcessors();
-    	        rightViewport.clearProcessors();
+    	        getLeftViewPort().clearProcessors();
+    	        getRightViewPort().clearProcessors();
     	        // if we have no processors to sync, don't add the FilterPostProcessor
     	        if( sourceViewport.getProcessors().isEmpty() ) return;
     	        // add post processors we just made, which are empty
-    	        leftViewport.addProcessor(leftPostProcessor);
-    	        rightViewport.addProcessor(rightPostProcessor);
+    	        getLeftViewPort().addProcessor(leftPostProcessor);
+    	        getRightViewPort().addProcessor(rightPostProcessor);
     	        // go through all of the filters in the processors list
     	        // add them to the left viewport processor & clone them to the right
     	        for(SceneProcessor sceneProcessor : sourceViewport.getProcessors()) {
@@ -670,8 +581,8 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{
     	                VRDirectionalLightShadowRenderer dlsr = (VRDirectionalLightShadowRenderer) sceneProcessor;
     	                VRDirectionalLightShadowRenderer dlsrRight = dlsr.clone();
     	                dlsrRight.setLight(dlsr.getLight());
-    	                rightViewport.getProcessors().add(0, dlsrRight);
-    	                leftViewport.getProcessors().add(0, sceneProcessor);
+    	                getRightViewPort().getProcessors().add(0, dlsrRight);
+    	                getLeftViewPort().getProcessors().add(0, sceneProcessor);
     	            }
     	        }
     	        // make sure each has a translucent filter renderer
@@ -718,16 +629,16 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{
     	        //org.lwjgl.opengl.GL11.glEnable(org.lwjgl.opengl.GL30.GL_FRAMEBUFFER_SRGB);
     	        
     	        if( !environment.isInstanceRendering()) {
-    	            leftViewport = setupViewBuffers(leftCamera, LEFT_VIEW_NAME);
+    	            leftViewPort = setupViewBuffers(leftCamera, LEFT_VIEW_NAME);
     	            rightCamera = leftCamera.clone();
     	            if( environment.getVRHardware() != null ){
     	            	rightCamera.setProjectionMatrix(environment.getVRHardware().getHMDMatrixProjectionRightEye(rightCamera));
     	            }
-    	            rightViewport = setupViewBuffers(rightCamera, RIGHT_VIEW_NAME);
+    	            rightViewPort = setupViewBuffers(rightCamera, RIGHT_VIEW_NAME);
     	        } else {
     	        	
     	        	System.err.println("[VRViewManager] THIS CODE NEED CHANGES !!!");
-    	            leftViewport = environment.getApplication().getViewPort();
+    	            leftViewPort = environment.getApplication().getViewPort();
     	            //leftViewport.attachScene(app.getRootNode());
     	            rightCamera = leftCamera.clone();
     	            if( environment.getVRHardware() != null ){
@@ -742,7 +653,7 @@ public class VRViewManagerOSVR extends AbstractVRViewManager{
     	        }
     	        
     	        // setup gui
-    	        environment.getVRGUIManager().setupGui(leftCamera, rightCamera, leftViewport, rightViewport);
+    	        environment.getVRGUIManager().setupGui(leftCamera, rightCamera, getLeftViewPort(), getRightViewPort());
     	        
     	        if( environment.getVRHardware() != null ) {
     	            // call these to cache the results internally