Java Code Examples for com.jme3.renderer.Camera#setViewPort()
The following examples show how to use
com.jme3.renderer.Camera#setViewPort() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ViewPortDemoState.java From Lemur with BSD 3-Clause "New" or "Revised" License | 4 votes |
/** * Creates an ortho viewport in the specified section of the screen. * The viewport will be scaled such that adding things to its root * scene will be in 1:1 pixel space. */ protected void createGuiViewPort( int x1, int y1, int x2, int y2, ColorRGBA bgColor ) { if( vp != null ) { disposeViewPort(); } log.info("Creating demo GUI ViewPort"); // Setup the viewport for a cloned camera Camera cam = getApplication().getCamera().clone(); float width = cam.getWidth(); float height = cam.getHeight(); cam.setViewPort(x1/width, x2/width, y1/height, y2/height); // Setup the ortho project. I've found it doesn't play // nice unless the range spans 0. We'll move its root node // so that 0,0 is the lower left corner like the regular gui bucket. float near = -1000; float far = 1000; float w = x2 - x1; float h = y2 - y1; cam.setParallelProjection(true); cam.setFrustum(near, far, -w/2, w/2, h/2, -h/2); // Create the actual viewport vp = getApplication().getRenderManager().createPostView("ViewPort Demo", cam); vp.setClearFlags(true, true, true); vp.setBackgroundColor(bgColor); // We want the transparent bucket to act exactly like the GUI // bucket with respect to back-to-front sorting. vp.getQueue().setGeometryComparator(Bucket.Transparent, new GuiComparator()); // Give it a root node that we can use to attach things. // Translate it so that 0,0 is the lower left corner. // Note: the is NOT in the Gui Bucket... but the transparent bucket. vpRoot = new Node("VP Root"); vpRoot.setQueueBucket(Bucket.Transparent); vpRoot.setLocalTranslation(-w/2, -h/2, 0); vp.attachScene(vpRoot); // Let Lemur know to do picking in this viewport getState(PickState.class).addCollisionRoot(vp, PickState.PICK_LAYER_GUI); }
Example 2
Source File: TestMultiViews.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 4 votes |
@Override public void simpleInitApp() { // create the geometry and attach it Geometry teaGeom = (Geometry) assetManager.loadModel("Models/Teapot/Teapot.obj"); teaGeom.scale(3); DirectionalLight dl = new DirectionalLight(); dl.setColor(ColorRGBA.White); dl.setDirection(Vector3f.UNIT_XYZ.negate()); rootNode.addLight(dl); rootNode.attachChild(teaGeom); // Setup first view viewPort.setBackgroundColor(ColorRGBA.Blue); cam.setViewPort(.5f, 1f, 0f, 0.5f); cam.setLocation(new Vector3f(3.3212643f, 4.484704f, 4.2812433f)); cam.setRotation(new Quaternion(-0.07680723f, 0.92299235f, -0.2564353f, -0.27645364f)); // Setup second view Camera cam2 = cam.clone(); cam2.setViewPort(0f, 0.5f, 0f, 0.5f); cam2.setLocation(new Vector3f(-0.10947256f, 1.5760219f, 4.81758f)); cam2.setRotation(new Quaternion(0.0010108891f, 0.99857414f, -0.04928594f, 0.020481428f)); ViewPort view2 = renderManager.createMainView("Bottom Left", cam2); view2.setClearFlags(true, true, true); view2.attachScene(rootNode); // Setup third view Camera cam3 = cam.clone(); cam3.setViewPort(0f, .5f, .5f, 1f); cam3.setLocation(new Vector3f(0.2846221f, 6.4271426f, 0.23380789f)); cam3.setRotation(new Quaternion(0.004381671f, 0.72363687f, -0.69015175f, 0.0045953835f)); ViewPort view3 = renderManager.createMainView("Top Left", cam3); view3.setClearFlags(true, true, true); view3.attachScene(rootNode); // Setup fourth view Camera cam4 = cam.clone(); cam4.setViewPort(.5f, 1f, .5f, 1f); cam4.setLocation(new Vector3f(4.775564f, 1.4548365f, 0.11491505f)); cam4.setRotation(new Quaternion(0.02356979f, -0.74957186f, 0.026729556f, 0.66096294f)); ViewPort view4 = renderManager.createMainView("Top Right", cam4); view4.setClearFlags(true, true, true); view4.attachScene(rootNode); //test multiview for gui guiViewPort.getCamera().setViewPort(.5f, 1f, .5f, 1f); // Setup second gui view Camera guiCam2 = guiViewPort.getCamera().clone(); guiCam2.setViewPort(0f, 0.5f, 0f, 0.5f); ViewPort guiViewPort2 = renderManager.createPostView("Gui 2", guiCam2); guiViewPort2.setClearFlags(false, false, false); guiViewPort2.attachScene(guiViewPort.getScenes().get(0)); }
Example 3
Source File: TestMultiViews.java From MikuMikuStudio with BSD 2-Clause "Simplified" License | 4 votes |
public void simpleInitApp() { // create the geometry and attach it Geometry teaGeom = (Geometry) assetManager.loadModel("Models/Teapot/Teapot.obj"); teaGeom.scale(3); DirectionalLight dl = new DirectionalLight(); dl.setColor(ColorRGBA.White); dl.setDirection(Vector3f.UNIT_XYZ.negate()); rootNode.addLight(dl); rootNode.attachChild(teaGeom); // Setup first view viewPort.setBackgroundColor(ColorRGBA.Blue); cam.setViewPort(.5f, 1f, 0f, 0.5f); cam.setLocation(new Vector3f(3.3212643f, 4.484704f, 4.2812433f)); cam.setRotation(new Quaternion(-0.07680723f, 0.92299235f, -0.2564353f, -0.27645364f)); // Setup second view Camera cam2 = cam.clone(); cam2.setViewPort(0f, 0.5f, 0f, 0.5f); cam2.setLocation(new Vector3f(-0.10947256f, 1.5760219f, 4.81758f)); cam2.setRotation(new Quaternion(0.0010108891f, 0.99857414f, -0.04928594f, 0.020481428f)); ViewPort view2 = renderManager.createMainView("Bottom Left", cam2); view2.setClearFlags(true, true, true); view2.attachScene(rootNode); // Setup third view Camera cam3 = cam.clone(); cam3.setViewPort(0f, .5f, .5f, 1f); cam3.setLocation(new Vector3f(0.2846221f, 6.4271426f, 0.23380789f)); cam3.setRotation(new Quaternion(0.004381671f, 0.72363687f, -0.69015175f, 0.0045953835f)); ViewPort view3 = renderManager.createMainView("Top Left", cam3); view3.setClearFlags(true, true, true); view3.attachScene(rootNode); // Setup fourth view Camera cam4 = cam.clone(); cam4.setViewPort(.5f, 1f, .5f, 1f); cam4.setLocation(new Vector3f(4.775564f, 1.4548365f, 0.11491505f)); cam4.setRotation(new Quaternion(0.02356979f, -0.74957186f, 0.026729556f, 0.66096294f)); ViewPort view4 = renderManager.createMainView("Top Right", cam4); view4.setClearFlags(true, true, true); view4.attachScene(rootNode); //test multiview for gui guiViewPort.getCamera().setViewPort(.5f, 1f, .5f, 1f); // Setup second gui view Camera guiCam2 = guiViewPort.getCamera().clone(); guiCam2.setViewPort(0f, 0.5f, 0f, 0.5f); ViewPort guiViewPort2 = renderManager.createPostView("Gui 2", guiCam2); guiViewPort2.setClearFlags(false, false, false); guiViewPort2.attachScene(guiViewPort.getScenes().get(0)); }