diff --git a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOSVR.java b/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOSVR.java index e3d85406e..2019e6210 100644 --- a/jme3-vr/src/main/java/com/jme3/util/VRViewManagerOSVR.java +++ b/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