@Override public Object call() throws Exception { guiViewPort.clearScenes(); guiViewPort.attachScene(node); guiNode = node; return null; }
/** * Set up the GUI. * @param leftcam the left eye camera. * @param rightcam the right eye camera. * @param left the left eye viewport. * @param right the right eye viewport. */ public void setupGui(Camera leftcam, Camera rightcam, ViewPort left, ViewPort right) { if (environment != null){ if( environment.hasTraditionalGUIOverlay() ) { camLeft = leftcam; camRight = rightcam; Spatial guiScene = getGuiQuad(camLeft); left.attachScene(guiScene); if( right != null ) right.attachScene(guiScene); setPositioningMode(posMode); } } else { throw new IllegalStateException("VR GUI manager is not attached to any environment."); } }
/** * Sets the scene to render in the reflection map. * * @param reflectionScene the refraction scene. */ public void setReflectionScene(final Spatial reflectionScene) { final Spatial currentScene = getReflectionScene(); if (reflectionView != null) { reflectionView.detachScene(currentScene == null? rootScene : currentScene); } this.reflectionScene = reflectionScene; if (reflectionView != null) { reflectionView.attachScene(reflectionScene == null? rootScene : reflectionScene); } }
@Override public void initialize(AppStateManager stateManager, Application app) { if (rootNode == null) { rootNode = new Node("Root Node"); } if (viewPort == null) { viewPort = app.getViewPort(); } viewPort.attachScene(rootNode); super.initialize(stateManager, app); }
@Override public void initialize(){ super.initialize(); System.out.println("Initialize"); // create a box boxGeom = new Geometry("Box", new Box(2, 2, 2)); // load some default material boxGeom.setMaterial(assetManager.loadMaterial("Interface/Logo/Logo.j3m")); // attach box to display in primary viewport viewPort.attachScene(boxGeom); }
private ViewPort setupViewBuffers(Camera cam, String viewName) { // TODO this function is identical to that in VRViewManagerOpenVR; merge the two. if (environment != null) { if (environment.getApplication() != null) { ViewPort viewPort = environment.getApplication().getRenderManager().createPreView(viewName, cam); viewPort.setClearFlags(true, true, true); viewPort.setBackgroundColor(ColorRGBA.Black); Iterator<Spatial> spatialIter = environment.getApplication().getViewPort().getScenes().iterator(); while (spatialIter.hasNext()) { viewPort.attachScene(spatialIter.next()); } // The viewbuffer to render into will be set during prerender. return viewPort; } else { throw new IllegalStateException("This VR environment is not attached to any application."); } } else { throw new IllegalStateException("This VR view manager is not attached to any VR environment."); } } }
@Override public void render(final RenderManager renderManager) { if (jobs.isEmpty()) { return; } final SnapshotJob job = jobs.get(0); for (int i = 0; i < 6; i++) { viewports[i].clearScenes(); viewports[i].attachScene(job.scene); renderManager.renderViewPort(viewports[i], 0.16f); buffers[i] = BufferUtils.createByteBuffer(size * size * imageFormat.getBitsPerPixel() / 8); renderManager.getRenderer().readFrameBufferWithFormat(framebuffers[i], buffers[i], imageFormat); images[i] = new Image(imageFormat, size, size, buffers[i], ColorSpace.Linear); MipMapGenerator.generateMipMaps(images[i]); } final TextureCubeMap map = EnvMapUtils.makeCubeMap(images[0], images[1], images[2], images[3], images[4], images[5], imageFormat); debugEnv = map; job.callback.done(map); map.getImage().dispose(); jobs.remove(0); }
/** * Initialize this state prior to its 1st update. Should be invoked only by * a subclass or by the AppStateManager. * * @param stateManager the manager for this state (not null) * @param app the application which owns this state (not null) */ @Override public void initialize(AppStateManager stateManager, Application app) { super.initialize(stateManager, app); this.app = app; this.rm = app.getRenderManager(); this.assetManager = app.getAssetManager(); setupMaterials(app); physicsDebugRootNode.setCullHint(Spatial.CullHint.Never); viewPort = rm.createMainView("Physics Debug Overlay", app.getCamera()); viewPort.setClearFlags(false, true, false); viewPort.attachScene(physicsDebugRootNode); }
/** * Initialize this state prior to its 1st update. Should be invoked only by * a subclass or by the AppStateManager. * * @param stateManager the manager for this state (not null) * @param app the application which owns this state (not null) */ @Override public void initialize(AppStateManager stateManager, Application app) { super.initialize(stateManager, app); this.app = app; this.rm = app.getRenderManager(); this.assetManager = app.getAssetManager(); setupMaterials(app); physicsDebugRootNode.setCullHint(Spatial.CullHint.Never); viewPort = rm.createMainView("Physics Debug Overlay", app.getCamera()); viewPort.setClearFlags(false, true, false); viewPort.attachScene(physicsDebugRootNode); }
@Override public void initialize(){ super.initialize(); System.out.println("Initialize"); RootNodeState state = new RootNodeState(); viewPort.attachScene(state.getRootNode()); stateManager.attach(state); Spatial model = assetManager.loadModel("Models/Teapot/Teapot.obj"); model.scale(3); model.setMaterial(assetManager.loadMaterial("Interface/Logo/Logo.j3m")); state.getRootNode().attachChild(model); NiftyJmeDisplay niftyDisplay = new NiftyJmeDisplay(assetManager, inputManager, audioRenderer, guiViewPort); niftyDisplay.getNifty().fromXml("Interface/Nifty/HelloJme.xml", "start"); guiViewPort.addProcessor(niftyDisplay); }
private ViewPort setupViewBuffers(Camera cam, String viewName) { if (environment != null) { if (environment.getApplication() != null) { // create offscreen framebuffer FrameBuffer offBufferLeft = new FrameBuffer(cam.getWidth(), cam.getHeight(), 1); //offBufferLeft.setSrgb(true); //setup framebuffer's texture Texture2D offTex = new Texture2D(cam.getWidth(), cam.getHeight(), Image.Format.RGBA8); offTex.setMinFilter(Texture2D.MinFilter.BilinearNoMipMaps); offTex.setMagFilter(Texture2D.MagFilter.Bilinear); //setup framebuffer to use texture offBufferLeft.setDepthBuffer(Image.Format.Depth); offBufferLeft.setColorTexture(offTex); ViewPort viewPort = environment.getApplication().getRenderManager().createPreView(viewName, cam); viewPort.setClearFlags(true, true, true); viewPort.setBackgroundColor(ColorRGBA.Black); Iterator<Spatial> spatialIter = environment.getApplication().getViewPort().getScenes().iterator(); while (spatialIter.hasNext()) { viewPort.attachScene(spatialIter.next()); } //set viewport to render to offscreen framebuffer viewPort.setOutputFrameBuffer(offBufferLeft); return viewPort; } else { throw new IllegalStateException("This VR environment is not attached to any application."); } } else { throw new IllegalStateException("This VR view manager is not attached to any VR environment."); } }
viewPort.attachScene(spatialIter.next());
viewPort.attachScene(spatialIter.next());
viewPort.attachScene(pic); viewPort.setOutputFrameBuffer(null);
viewPort.attachScene(pic); viewPort.setOutputFrameBuffer(null);
private ViewPort setupMirrorBuffers(Camera cam, Texture2D tex, boolean expand) { if (environment != null) { if (environment.getApplication() != null) { Camera clonecam = cam.clone(); ViewPort viewPort = environment.getApplication().getRenderManager().createPostView("MirrorView", clonecam); clonecam.setParallelProjection(true); viewPort.setClearFlags(true, true, true); viewPort.setBackgroundColor(ColorRGBA.Black); Picture pic = new Picture("fullscene"); pic.setLocalTranslation(-0.75f, -0.5f, 0f); if (expand) { pic.setLocalScale(3f, 1f, 1f); } else { pic.setLocalScale(1.5f, 1f, 1f); } pic.setQueueBucket(Bucket.Opaque); pic.setTexture(environment.getApplication().getAssetManager(), (Texture2D) tex, false); viewPort.attachScene(pic); viewPort.setOutputFrameBuffer(null); pic.updateGeometricState(); return viewPort; } else { throw new IllegalStateException("This VR environment is not attached to any application."); } } else { throw new IllegalStateException("This VR view manager is not attached to any VR environment."); } }
@Override public void simpleInitApp() { flyCam.setEnabled(false); Geometry blueBox = new Geometry("blue box", mesh); Material blueMat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); blueMat.setColor("Color", ColorRGBA.Blue); blueBox.setMaterial(blueMat); rootNode.attachChild(blueBox); rightCam = cam.clone(); rightCam.setViewPort(0.5f, 1f, 0f, 1f); rightView = renderManager.createMainView("right", rightCam); rightView.setClearFlags(true, true, true); rightView.setEnabled(false); rightView.attachScene(rootNode); Geometry redBox = new Geometry("red box", mesh); Material redMat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); redMat.setColor("Color", ColorRGBA.Red); redBox.setMaterial(redMat); leftScene.attachChild(redBox); leftCam = cam.clone(); leftCam.setViewPort(0f, 0.5f, 0f, 1f); leftView = renderManager.createMainView("left", leftCam); leftView.setClearFlags(true, true, true); leftView.setEnabled(false); leftView.attachScene(leftScene); inputManager.addMapping("lmb", new MouseButtonTrigger(MouseInput.BUTTON_LEFT)); inputManager.addListener(this, "lmb"); }
@Override protected void initialize(Application app) { vp = app.getRenderManager().createMainView("debug", app.getCamera()); vp.attachScene(debugNode); vp.setClearDepth(true); this.app = app; for (ArmatureDebugger armatureDebugger : armatures.values()) { armatureDebugger.initialize(app.getAssetManager(), app.getCamera()); } app.getInputManager().addListener(actionListener, "shoot", "toggleJoints"); app.getInputManager().addMapping("shoot", new MouseButtonTrigger(MouseInput.BUTTON_LEFT), new MouseButtonTrigger(MouseInput.BUTTON_RIGHT)); app.getInputManager().addMapping("toggleJoints", new KeyTrigger(KeyInput.KEY_F10)); debugNode.addLight(new DirectionalLight(new Vector3f(-1f, -1f, -1f).normalizeLocal())); debugNode.addLight(new DirectionalLight(new Vector3f(1f, 1f, 1f).normalizeLocal(), new ColorRGBA(0.5f, 0.5f, 0.5f, 1.0f))); vp.setEnabled(false); }
offView.attachScene(offBox);
offView.attachScene(offBox);