/** * Clears the queue of the given ViewPort. * Simply calls {@link RenderQueue#clear() } on the ViewPort's * {@link ViewPort#getQueue() render queue}. * * @param vp The ViewPort of which the queue will be cleared. * * @see RenderQueue#clear() * @see ViewPort#getQueue() */ public void clearQueue(ViewPort vp) { vp.getQueue().clear(); }
/** * Renders the {@link Bucket#Translucent translucent queue} on the viewPort. * <p> * This call does nothing unless {@link #setHandleTranslucentBucket(boolean) } * is set to true. This method clears the translucent queue after rendering * it. * * @param vp The viewport of which the translucent queue should be rendered. * * @see #renderViewPortQueues(com.jme3.renderer.ViewPort, boolean) * @see #setHandleTranslucentBucket(boolean) */ public void renderTranslucentQueue(ViewPort vp) { if (prof!=null) prof.vpStep(VpStep.RenderBucket, vp, Bucket.Translucent); RenderQueue rq = vp.getQueue(); if (!rq.isQueueEmpty(Bucket.Translucent) && handleTranlucentBucket) { rq.renderQueue(Bucket.Translucent, this, vp.getCamera(), true); } }
public void postFrame(FrameBuffer out) { if (!noOccluders) { postshadowMat.setMatrix4("LightViewProjectionMatrix", shadowCam.getViewProjectionMatrix()); renderManager.setForcedMaterial(postshadowMat); viewPort.getQueue().renderShadowQueue(lightReceivers, renderManager, viewPort.getCamera(), true); renderManager.setForcedMaterial(null); } }
@Override protected void postFrame(RenderManager renderManager, ViewPort viewPort, FrameBuffer prevFilterBuffer, FrameBuffer sceneBuffer) { renderManager.setCamera(viewPort.getCamera(), false); if (prevFilterBuffer != sceneBuffer) { renderManager.getRenderer().copyFrameBuffer(prevFilterBuffer, sceneBuffer, false); } renderManager.getRenderer().setFrameBuffer(sceneBuffer); viewPort.getQueue().renderQueue(RenderQueue.Bucket.Translucent, renderManager, viewPort.getCamera()); }
private void renderSubScene(Spatial scene, ViewPort vp) { // check culling first. if (!scene.checkCulling(vp.getCamera())) { return; } scene.runControlRender(this, vp); if (scene instanceof Node) { // Recurse for all children Node n = (Node) scene; List<Spatial> children = n.getChildren(); // Saving cam state for culling int camState = vp.getCamera().getPlaneState(); for (int i = 0; i < children.size(); i++) { // Restoring cam state before proceeding children recursively vp.getCamera().setPlaneState(camState); renderSubScene(children.get(i), vp); } } else if (scene instanceof Geometry) { // add to the render queue Geometry gm = (Geometry) scene; if (gm.getMaterial() == null) { throw new IllegalStateException("No material is set for Geometry: " + gm.getName()); } vp.getQueue().addToQueue(gm, scene.getQueueBucket()); } }
protected void renderShadowMap(int shadowMapIndex) { shadowMapOccluders = getOccludersToRender(shadowMapIndex, shadowMapOccluders); Camera shadowCam = getShadowCam(shadowMapIndex); //saving light view projection matrix for this split lightViewProjectionsMatrices[shadowMapIndex].set(shadowCam.getViewProjectionMatrix()); renderManager.setCamera(shadowCam, false); renderManager.getRenderer().setFrameBuffer(shadowFB[shadowMapIndex]); renderManager.getRenderer().clearBuffers(true, true, true); renderManager.setForcedRenderState(forcedRenderState); // render shadow casters to shadow map viewPort.getQueue().renderShadowQueue(shadowMapOccluders, renderManager, shadowCam, true); renderManager.setForcedRenderState(null); } boolean debugfrustums = false;
protected void renderShadowMap(int shadowMapIndex) { shadowMapOccluders = getOccludersToRender(shadowMapIndex, shadowMapOccluders); Camera shadowCam = getShadowCam(shadowMapIndex); //saving light view projection matrix for this split lightViewProjectionsMatrices[shadowMapIndex].set(shadowCam.getViewProjectionMatrix()); renderManager.setCamera(shadowCam, false); renderManager.getRenderer().setFrameBuffer(shadowFB[shadowMapIndex]); renderManager.getRenderer().clearBuffers(true, true, true); renderManager.setForcedRenderState(forcedRenderState); // render shadow casters to shadow map viewPort.getQueue().renderShadowQueue(shadowMapOccluders, renderManager, shadowCam, true); renderManager.setForcedRenderState(null); } boolean debugfrustums = false;
public void postQueue(RenderQueue rq) { //we need special treatement for the sky because it must not be clipped rm.getRenderer().setFrameBuffer(reflectionBuffer); reflectionCam.setProjectionMatrix(null); rm.setCamera(reflectionCam, false); rm.getRenderer().clearBuffers(true, true, true); //Rendering the sky whithout clipping rm.getRenderer().setDepthRange(1, 1); vp.getQueue().renderQueue(RenderQueue.Bucket.Sky, rm, reflectionCam, true); rm.getRenderer().setDepthRange(0, 1); //setting the clip plane to the cam reflectionCam.setClipPlane(reflectionClipPlane, Plane.Side.Positive);//,1 rm.setCamera(reflectionCam, false); }
public void postFrame(FrameBuffer out) { if (debug) { displayShadowMap(renderManager.getRenderer()); } if (!noOccluders) { //setting params to receiving geometry list setMatParams(); Camera cam = viewPort.getCamera(); //some materials in the scene does not have a post shadow technique so we're using the fall back material if (needsfallBackMaterial) { renderManager.setForcedMaterial(postshadowMat); } //forcing the post shadow technique and render state renderManager.setForcedTechnique(postTechniqueName); //rendering the post shadow pass viewPort.getQueue().renderShadowQueue(lightReceivers, renderManager, cam, true); //resetting renderManager settings renderManager.setForcedTechnique(null); renderManager.setForcedMaterial(null); renderManager.setCamera(cam, false); } }
viewPort.getQueue().renderShadowQueue(lightReceivers, renderManager, cam, false);
for (SceneProcessor proc : processors.getArray()) { if (prof != null) prof.spStep(SpStep.ProcPostQueue, proc.getClass().getSimpleName()); proc.postQueue(vp.getQueue());
viewPort.getQueue().renderShadowQueue(lightReceivers, renderManager, cam, false);
RenderQueue rq = vp.getQueue(); Camera cam = vp.getCamera(); boolean depthRangeChanged = false;
viewPort.getQueue().renderShadowQueue(splitOccluders, renderManager, shadowCam, true);
viewPort.getQueue().renderShadowQueue(shadowOccluders, renderManager, shadowCam, true); r.setFrameBuffer(viewPort.getOutputFrameBuffer());
/** * Clears the queue of the given ViewPort. * Simply calls {@link RenderQueue#clear() } on the ViewPort's * {@link ViewPort#getQueue() render queue}. * * @param vp The ViewPort of which the queue will be cleared. * * @see RenderQueue#clear() * @see ViewPort#getQueue() */ public void clearQueue(ViewPort vp) { vp.getQueue().clear(); }
public void postFrame(FrameBuffer out) { if (!noOccluders) { postshadowMat.setMatrix4("LightViewProjectionMatrix", shadowCam.getViewProjectionMatrix()); renderManager.setForcedMaterial(postshadowMat); viewPort.getQueue().renderShadowQueue(lightReceivers, renderManager, viewPort.getCamera(), true); renderManager.setForcedMaterial(null); } }
@Override protected void postFrame(RenderManager renderManager, ViewPort viewPort, FrameBuffer prevFilterBuffer, FrameBuffer sceneBuffer) { renderManager.setCamera(viewPort.getCamera(), false); if (prevFilterBuffer != sceneBuffer) { renderManager.getRenderer().copyFrameBuffer(prevFilterBuffer, sceneBuffer, false); } renderManager.getRenderer().setFrameBuffer(sceneBuffer); viewPort.getQueue().renderQueue(RenderQueue.Bucket.Translucent, renderManager, viewPort.getCamera()); }
@Override protected void postFrame(RenderManager renderManager, ViewPort viewPort, FrameBuffer prevFilterBuffer, FrameBuffer sceneBuffer) { renderManager.setCamera(viewPort.getCamera(), false); if (prevFilterBuffer != sceneBuffer) { renderManager.getRenderer().copyFrameBuffer(prevFilterBuffer, sceneBuffer, false); } renderManager.getRenderer().setFrameBuffer(sceneBuffer); viewPort.getQueue().renderQueue(RenderQueue.Bucket.Translucent, renderManager, viewPort.getCamera()); }
public void setupGuiComparators( ViewPort view ) { RenderQueue rq = view.getQueue(); rq.setGeometryComparator(Bucket.Opaque, new LayerComparator(rq.getGeometryComparator(Bucket.Opaque), -1)); rq.setGeometryComparator(Bucket.Transparent, new LayerComparator(rq.getGeometryComparator(Bucket.Transparent), -1)); rq.setGeometryComparator(Bucket.Gui, new LayerComparator(rq.getGeometryComparator(Bucket.Gui), -1)); }