@Override protected void onRender(final long elapsedTime, final double deltaTime) { mUserScene = getCurrentScene(); setRenderTarget(mLeftRenderTarget); getCurrentScene().switchCamera(mCameraLeft); GLES20.glViewport(0, 0, mViewportWidthHalf, mDefaultViewportHeight); mCameraLeft.setProjectionMatrix(mViewportWidthHalf, mDefaultViewportHeight); mCameraLeft.setOrientation(mCameraOrientation); render(elapsedTime, deltaTime); setRenderTarget(mRightRenderTarget); getCurrentScene().switchCamera(mCameraRight); mCameraRight.setProjectionMatrix(mViewportWidthHalf, mDefaultViewportHeight); mCameraRight.setOrientation(mCameraOrientation); render(elapsedTime, deltaTime); switchSceneDirect(mSideBySideScene); GLES20.glViewport(0, 0, mDefaultViewportWidth, mDefaultViewportHeight); setRenderTarget(null); render(elapsedTime, deltaTime); switchSceneDirect(mUserScene); }
public Camera clone() { Camera cam = new Camera(); cam.setFarPlane(mFarPlane); cam.setFieldOfView(mFieldOfView); cam.setGraphNode(mGraphNode, mInsideGraph); cam.setLookAt(mLookAt.clone()); cam.setNearPlane(mNearPlane); cam.setOrientation(mOrientation.clone()); cam.setPosition(mPosition.clone()); cam.setProjectionMatrix(mLastWidth, mLastHeight); return cam; } }
@Override public void onDrawEye(Eye eye) { getCurrentCamera().updatePerspective( eye.getFov().getLeft(), eye.getFov().getRight(), eye.getFov().getBottom(), eye.getFov().getTop()); mCurrentEyeMatrix.setAll(eye.getEyeView()); mCurrentEyeOrientation.fromMatrix(mCurrentEyeMatrix); getCurrentCamera().setOrientation(mCurrentEyeOrientation); getCurrentCamera().setPosition(mCameraPosition); getCurrentCamera().getPosition().add(mCurrentEyeMatrix.getTranslation().inverse()); super.onRenderFrame(null); }
@Override public void onDrawEye(Eye eye) { // Apply the eye transformation to the camera eyeMatrix.setAll(eye.getEyeView()); eyeQuaternion.fromMatrix(eyeMatrix); getCurrentCamera().setOrientation(eyeQuaternion); render(ellapsedRealtime, deltaTime); }
@Override protected void onRender(final long ellapsedTime, final double deltaTime) { mUserScene = getCurrentScene(); setRenderTarget(mLeftRenderTarget); getCurrentScene().switchCamera(mCameraLeft); GLES20.glViewport(0, 0, mViewportWidthHalf, mDefaultViewportHeight); mCameraLeft.setProjectionMatrix(mViewportWidthHalf, mDefaultViewportHeight); mCameraLeft.setOrientation(mCameraOrientation); render(ellapsedTime, deltaTime); setRenderTarget(mRightRenderTarget); getCurrentScene().switchCamera(mCameraRight); mCameraRight.setProjectionMatrix(mViewportWidthHalf, mDefaultViewportHeight); mCameraRight.setOrientation(mCameraOrientation); render(ellapsedTime, deltaTime); switchSceneDirect(mSideBySideScene); GLES20.glViewport(0, 0, mDefaultViewportWidth, mDefaultViewportHeight); setRenderTarget(null); render(ellapsedTime, deltaTime); switchSceneDirect(mUserScene); }
public Camera clone() { Camera cam = new Camera(); cam.setFarPlane(mFarPlane); cam.setFieldOfView(mFieldOfView); cam.setGraphNode(mGraphNode, mInsideGraph); cam.setLookAt(mLookAt.clone()); cam.setNearPlane(mNearPlane); cam.setOrientation(mOrientation.clone()); cam.setPosition(mPosition.clone()); cam.setProjectionMatrix(mLastWidth, mLastHeight); return cam; } }