@Override protected void setDepthTexture(Texture depthTexture) { this.depthTexture = depthTexture; if (enabledSoftParticles && depthTexture != null) { initSoftParticles(viewPort, true); } }
private void initSoftParticles(ViewPort vp, boolean enabledSP) { if (depthTexture != null) { for (Spatial scene : vp.getScenes()) { makeSoftParticleEmitter(scene, enabledSP && enabled); } } }
leftPostProcessor.addFilter(new TranslucentBucketFilter()); rightPostProcessor.addFilter(new TranslucentBucketFilter()); } else { throw new IllegalStateException("This VR environment is not attached to any application.");
getLeftPostProcessor().addFilter(new TranslucentBucketFilter()); getRightPostProcessor().addFilter(new TranslucentBucketFilter()); } else { throw new IllegalStateException("The VR environment is not attached to any application.");
@Override protected void cleanUpFilter(Renderer r) { if (renderManager != null) { renderManager.setHandleTranslucentBucket(true); } initSoftParticles(viewPort, false); }
private void makeSoftParticleEmitter(Spatial scene, boolean enabled) { if (scene instanceof Node) { Node n = (Node) scene; for (Spatial child : n.getChildren()) { makeSoftParticleEmitter(child, enabled); } } if (scene instanceof ParticleEmitter) { ParticleEmitter emitter = (ParticleEmitter) scene; if (enabled) { enabledSoftParticles = enabled; emitter.getMaterial().selectTechnique("SoftParticles", renderManager); if( processor.getNumSamples()>1){ emitter.getMaterial().setInt("NumSamplesDepth", processor.getNumSamples()); } emitter.getMaterial().setTexture("DepthTexture", processor.getDepthTexture()); emitter.setQueueBucket(RenderQueue.Bucket.Translucent); logger.log(Level.FINE, "Made particle Emitter {0} soft.", emitter.getName()); } else { emitter.getMaterial().clearParam("DepthTexture"); emitter.getMaterial().selectTechnique("Default", renderManager); // emitter.setQueueBucket(RenderQueue.Bucket.Transparent); logger.log(Level.FINE, "Particle Emitter {0} is not soft anymore.", emitter.getName()); } } } }
tbf = new TranslucentBucketFilter(true); fpp.addFilter(tbf); int samples = context.getSettings().getSamples();
@Override public void setEnabled(boolean enabled) { super.setEnabled(enabled); if (renderManager != null) { renderManager.setHandleTranslucentBucket(!enabled); } initSoftParticles(viewPort, enabledSoftParticles); }
private void initSoftParticles(ViewPort vp, boolean enabledSP) { if (depthTexture != null) { for (Spatial scene : vp.getScenes()) { makeSoftParticleEmitter(scene, enabledSP && enabled); } } }
@Override protected void initFilter(AssetManager manager, RenderManager rm, ViewPort vp, int w, int h) { this.renderManager = rm; this.viewPort = vp; material = new Material(manager, "Common/MatDefs/Post/Overlay.j3md"); material.setColor("Color", ColorRGBA.White); Texture2D tex = processor.getFilterTexture(); material.setTexture("Texture", tex); if (tex.getImage().getMultiSamples() > 1) { material.setInt("NumSamples", tex.getImage().getMultiSamples()); } else { material.clearParam("NumSamples"); } renderManager.setHandleTranslucentBucket(false); if (enabledSoftParticles && depthTexture != null) { initSoftParticles(vp, true); } }
private void initSoftParticles(ViewPort vp, boolean enabledSP) { if (depthTexture != null) { for (Spatial scene : vp.getScenes()) { makeSoftParticleEmitter(scene, enabledSP && enabled); } } }
@Override protected void setDepthTexture(Texture depthTexture) { this.depthTexture = depthTexture; if (enabledSoftParticles && depthTexture != null) { initSoftParticles(viewPort, true); } }
private void initSoftParticles(ViewPort vp, boolean enabledSP) { if (depthTexture != null) { for (Spatial scene : vp.getScenes()) { makeSoftParticleEmitter(scene, enabledSP && enabled); } } }
@Override protected void setDepthTexture(Texture depthTexture) { this.depthTexture = depthTexture; if (enabledSoftParticles && depthTexture != null) { initSoftParticles(viewPort, true); } }
private void makeSoftParticleEmitter(Spatial scene, boolean enabled) { if (scene instanceof Node) { Node n = (Node) scene; for (Spatial child : n.getChildren()) { makeSoftParticleEmitter(child, enabled); } } if (scene instanceof ParticleEmitter) { ParticleEmitter emitter = (ParticleEmitter) scene; if (enabled) { enabledSoftParticles = enabled; emitter.getMaterial().selectTechnique("SoftParticles", renderManager); if( processor.getNumSamples()>1){ emitter.getMaterial().setInt("NumSamplesDepth", processor.getNumSamples()); } emitter.getMaterial().setTexture("DepthTexture", processor.getDepthTexture()); emitter.setQueueBucket(RenderQueue.Bucket.Translucent); logger.log(Level.FINE, "Made particle Emitter {0} soft.", emitter.getName()); } else { emitter.getMaterial().clearParam("DepthTexture"); emitter.getMaterial().selectTechnique("Default", renderManager); // emitter.setQueueBucket(RenderQueue.Bucket.Transparent); logger.log(Level.FINE, "Particle Emitter {0} is not soft anymore.", emitter.getName()); } } } }
@Override protected void setDepthTexture(Texture depthTexture) { this.depthTexture = depthTexture; if (enabledSoftParticles && depthTexture != null) { initSoftParticles(viewPort, true); } }
Node n = (Node) scene; for (Spatial child : n.getChildren()) { makeSoftParticleEmitter(child, enabled);
@Override protected void cleanUpFilter(Renderer r) { if (renderManager != null) { renderManager.setHandleTranslucentBucket(true); } initSoftParticles(viewPort, false); }
Node n = (Node) scene; for (Spatial child : n.getChildren()) { makeSoftParticleEmitter(child, enabled);
@Override protected void cleanUpFilter(Renderer r) { if (renderManager != null) { renderManager.setHandleTranslucentBucket(true); } initSoftParticles(viewPort, false); }