public void checkLookInside(GVRScene scene) { Log.i("", "Check look inside"); if (lookInsideFlag) { Vector3f coord = oCurrentPosition.getCameraPosition(); Log.i("", "True Check look inside" + Float.toString(coord.x) + Float.toString(coord .y) + Float.toString(coord.z)); scene.getMainCameraRig().getTransform().setPosition(coord.x, coord.y, coord.z); lookInsideFlag = false; } } // END Camera Position Feature
public void lookInside(GVRScene scene, boolean flag) { if (flag && (currentDisplayedModel != null)) { lookInsideFlag = true; scene.getMainCameraRig().getTransform().setPosition(lookInsidePosition.x, lookInsidePosition.y, lookInsidePosition.z); } }
public void onButtonDown() { mGVRContext.getMainScene().getMainCameraRig().resetYaw(); }
@Override public void onInit(GVRContext gvrContext) { this.gvrContext = gvrContext; mainScene = gvrContext.getMainScene(); mainScene.getMainCameraRig().setFarClippingDistance(20000); createTeaPotObject(); vuforiaMVMatrix = new float[16]; totalMVMatrix = new float[16]; initRendering(); init = true; }
private void applyFromSdcard2dImpl(final File file) { final GVRScene scene = getGVRContext().getMainScene(); scene.getMainCameraRig().setCameraRigType(GVRCameraRig.GVRCameraRigType.Freeze.ID); try { final BitmapFactory.Options bitmapOptions = new BitmapFactory.Options(); bitmapOptions.inJustDecodeBounds = true; BitmapFactory.decodeFile(file.getAbsolutePath(), bitmapOptions); final GVRTexture t = getGVRContext().getAssetLoader().loadTexture(new GVRAndroidResource(file.getAbsolutePath())); final GVRSceneObject sceneObject = new GVRSceneObject(mGVRContext, 20, 20*bitmapOptions.outHeight/bitmapOptions.outWidth, t); sceneObject.getTransform().setPositionZ(-11); scene.addSceneObject(sceneObject); } catch(final Exception exc) { exc.printStackTrace(); } }
public void createBlurTexture(GVRTexture texture, final GVRMaterial material) { GVRScene blurScene = new GVRScene(mContext); GVRSceneObject blurryQuad = createBlurScene(blurScene, texture); blurScene.getMainCameraRig().addChildObject(blurryQuad); // // Set up a texture to render into and a GVRRenderTarget // to initiate rendering into the texture every frame. // mRenderTexture = new GVRRenderTexture(mContext, 1024, 1024); GVRRenderTarget renderTarget = new GVRRenderTarget(mRenderTexture, blurScene); blurScene.getMainCameraRig().getOwnerObject().attachComponent(renderTarget); material.setMainTexture(mRenderTexture); renderTarget.setEnable(true); }
public void onUpdate(GVRSceneObject sceneObject) { distanceToAnchorPoint = Math.abs(getTransform().getPositionY() - Y_ANCHOR_POINT); if (distanceToAnchorPoint <= Y_ANCHOR_POINT_THRESHOLD) { this.heightSyncLocked = true; } float[] lookAt = getGVRContext().getMainScene().getMainCameraRig().getLookAt(); deltaY = lookAt[1] - lastY; lastY = lookAt[1]; onFocus = false; if (sceneObject.hashCode() == hashCode()) { onFocus = true; } }
private void applyFromSdcard(final GVRScene scene) { final File file = mSdcardResources.get(mEnvironmentType); if (file.getName().endsWith(".zip")) { scene.getMainCameraRig().setCameraRigType(GVRCameraRig.GVRCameraRigType.Free.ID); try { final GVRTexture cubemapTexture = getGVRContext().getAssetLoader().loadCubemapTexture(new GVRAndroidResource(file.getAbsolutePath())); final GVRMaterial material = new GVRMaterial(getGVRContext(), GVRMaterial.GVRShaderType.Cubemap.ID); material.setMainTexture(cubemapTexture); final GVRSceneObject sceneObject = new GVRCubeSceneObject(mGVRContext, false, material); sceneObject.getTransform().setScale(CUBE_WIDTH, CUBE_WIDTH, CUBE_WIDTH); scene.addSceneObject(sceneObject); } catch(final Exception exc) { exc.printStackTrace(); } } else { applyFromSdcard2dImpl(file); } }
@Override public void onInit(GVRContext gvrContext) throws IOException { mGVRContext = gvrContext; GVRScene scene = gvrContext.getMainScene(); scene.getMainCameraRig().getTransform().setPosition(0,0,0); //attach the stars emitter initially stars = createstars(); stars.getTransform().setPosition(0,0,-50); stars.getTransform().setRotationByAxis(90, 1,0,0); scene.addSceneObject(stars); mElapsedTime = System.currentTimeMillis(); }
public void addGammaCorrection() { // add a custom post effect for dynamically adjusting gamma GVRShaderId gammaShader = new GVRShaderId(GammaShader.class); postEffect = new GVRMaterial(gvrContext, gammaShader); postEffect.setFloat("u_gamma", 2.2f); GVRCameraRig rig = gvrContext.getMainScene().getMainCameraRig(); rig.getLeftCamera().addPostEffect(postEffect); rig.getRightCamera().addPostEffect(postEffect); }
private void createSkybox() { mGVRContext.getMainScene().getMainCameraRig() .getTransform().setPosition(-0f, Util.applyRatioAt(1.70), 0f); GVRSceneObject mSpaceSceneObject = null; EnumSet<GVRImportSettings> settings = GVRImportSettings.getRecommendedSettings(); try { mSpaceSceneObject = mGVRContext.getAssetLoader().loadModel(new GVRAndroidResource(mGVRContext, R.raw.skybox_esphere), settings, false, mGVRContext.getMainScene()); } catch (IOException e) { e.printStackTrace(); } mGVRContext.getMainScene().addSceneObject(mSpaceSceneObject); List<GVRRenderData> rdatas = mSpaceSceneObject.getAllComponents(GVRRenderData.getComponentType()); GVRRenderData rdata = rdatas.get(0); rdata.setRenderingOrder(0); }
@Override public void run() { mRenderTexture = new GVRRenderTexture(gvrContext, 512, 512); GVRRenderTarget renderTarget = new GVRRenderTarget(mRenderTexture, scene); scene.getMainCameraRig().getOwnerObject().attachComponent(renderTarget); //to prevent rendering untextured cube for few frames at the start cube.getRenderData().getMaterial().setMainTexture(mRenderTexture); closeSplashScreen(); renderTarget.setEnable(true); } });
@Override public void run() { if(cameraObject == null) { cameraObject = new GVRCameraSceneObject(gvrContext, PASSTHROUGH_WIDTH, PASSTHROUGH_HEIGHT, camera); cameraObject.setUpCameraForVrMode(1); // set up 60 fps camera preview. cameraObject.getTransform().setPosition(0.0f, 0.0f, PASSTHROUGH_Z); cameraObject.getRenderData().setRenderingOrder(GVRRenderingOrder.BACKGROUND); cameraObject.setName("passthrough"); } gvrContext.getMainScene().getMainCameraRig().addChildObject(cameraObject); } };
private void hideCursor() { final float rotateXScene = mCurrentContainer.getTransform().getRotationX(); final float rotateYScene = mCurrentContainer.getTransform().getRotationY(); final float rotateZScene = mCurrentContainer.getTransform().getRotationZ(); final float rotateWScene = mCurrentContainer.getTransform().getRotationW(); final float rotateXCamera = getGVRContext().getMainScene().getMainCameraRig().getHeadTransform().getRotationX(); final float rotateYCamera = getGVRContext().getMainScene().getMainCameraRig().getHeadTransform().getRotationY(); final float rotateZCamera = getGVRContext().getMainScene().getMainCameraRig().getHeadTransform().getRotationZ(); final float rotateWCamera = getGVRContext().getMainScene().getMainCameraRig().getHeadTransform().getRotationW(); Quaternionf quaternionfScene = new Quaternionf(rotateXScene, rotateYScene, rotateZScene, rotateWScene); Quaternionf quaternionfCamera = new Quaternionf(rotateXCamera, rotateYCamera, rotateZCamera, rotateWCamera); quaternionfScene.difference(quaternionfCamera); if (quaternionfScene.angle() > Math.PI / 4.0f) { enableInteractiveCursor(); } else { disableInteractiveCursor(); } }
public void unspotSphere() { if (!isUnspottingSphere) { isUnspottingSphere = true; GVRCameraRig cameraObject = gvrContext.getMainScene().getMainCameraRig(); float scaleFactor = Util.getHitAreaScaleFactor((float) Util.distance( getInitialPositionVector(), cameraObject.getTransform())); stopAnimationsToUnspot(); spotAnimation = createUnspotAnimation(scaleFactor); spotAnimation.start(gvrContext.getAnimationEngine()).setOnFinish(new GVROnFinish() { @Override public void finished(GVRAnimation arg0) { isUnspottingSphere = false; } }); } }
public GVRSceneObject createBlurScene(GVRScene scene, GVRTexture texture) { final GVRSceneObject blurryQuad = new GVRSceneObject(mContext, 2.0f, 2.0f, texture, GVRMaterial.GVRShaderType.OES.ID); GVRCamera camera = scene.getMainCameraRig().getCenterCamera(); GVRMaterial horzBlurMtl = new GVRMaterial(mContext, new GVRShaderId(HorzBlurShader.class)); horzBlurMtl.setFloat("u_resolution", 1024.0f); camera.addPostEffect(horzBlurMtl); GVRMaterial vertBlurMtl = new GVRMaterial(mContext, new GVRShaderId(VertBlurShader.class)); vertBlurMtl.setFloat("u_resolution", 1024.0f); camera.addPostEffect(vertBlurMtl); blurryQuad.getTransform().setPositionZ(-0.1f); return blurryQuad; }
@Override public void onInit(GVRContext gvrContext) throws Throwable { mScene = gvrContext.getMainScene(); mCamera = mScene.getMainCameraRig(); mCamera.getTransform().setPosition(0.0f, 6.0f, 20f); mCursor = MainHelper.createGaze(gvrContext, 0.0f, 0.0f, 0.0f); mBallProto = new GVRSphereSceneObject(gvrContext, true, new GVRMaterial(gvrContext, GVRMaterial.GVRShaderType.Phong.ID)); initScene(gvrContext, mScene); initLabels(gvrContext, mScene); addPhysicsWorld(gvrContext, mScene); mScene.getEventReceiver().addListener(this); gvrContext.getInputManager().selectController(mControllerSelector); }
private void addCursorPosition() { GVRSceneObject headTracker = new GVRSceneObject(mGVRContext, mGVRContext.createQuad(0.5f, 0.5f), mGVRContext.getAssetLoader().loadTexture(new GVRAndroidResource( mGVRContext, R.drawable.head_tracker))); headTracker.getTransform().setPositionZ(-9.0f); headTracker.getRenderData().setRenderingOrder( GVRRenderData.GVRRenderingOrder.OVERLAY); headTracker.getRenderData().setDepthTest(false); headTracker.getRenderData().setRenderingOrder(100000); mGVRContext.getMainScene().getMainCameraRig().getRightCamera() .addChildObject(headTracker); }
public void playMoveAnimation(GVRContext gvrContext, GVRSceneObject returnTarget) { getTransform().setPosition(returnTarget.getTransform().getPositionX(), returnTarget.getTransform().getPositionY(), returnTarget.getTransform().getPositionZ()); getTransform().setRotationByAxis( 0, 1, 1, 1); getTransform().rotateByAxis( MathUtils.getYRotationAngle(this, gvrContext.getMainScene().getMainCameraRig()), 0, 1, 0); GVRAnimation anim = new GVRRelativeMotionAnimation(this, ANIMATION_DURATION, 0, Y_ANIMATION_DELTA, 0); anim.start(gvrContext.getAnimationEngine()); playOpacityAnimation(gvrContext); }
public GVRMaterial createDisplayScene(GVRScene scene, GVRTexture cameraTex) { GVRSceneObject normalCamera = new GVRSceneObject(mContext, 3.6f, 2.0f, cameraTex, GVRMaterial.GVRShaderType.OES.ID); GVRTexture tempTex = getGVRContext().getAssetLoader().loadTexture(new GVRAndroidResource(getGVRContext(), R.drawable.checker)); GVRSceneObject blurryCamera = new GVRSceneObject(mContext, 3.6f, 2.0f, tempTex); final GVRMaterial blurryMtl = blurryCamera.getRenderData().getMaterial(); GVRSceneObject cameraRoot = new GVRSceneObject(mContext); blurryCamera.getRenderData().setCullFace(GVRRenderPass.GVRCullFaceEnum.None); normalCamera.getTransform().setPositionX(-2); blurryCamera.getTransform().setPositionX(2); cameraRoot.getTransform().setPosition(0.0f, 0.0f, -4.0f); cameraRoot.addChildObject(normalCamera); // index 0 = normal camera cameraRoot.addChildObject(blurryCamera); // index 1 = blurry camera scene.getMainCameraRig().addChildObject(cameraRoot); return blurryMtl; } }