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()); } }
public void postQueue(RenderQueue rq) { renderSet.clear(); //tree.generateRenderSet(renderSet, cam); fastRoot.generateRenderSet(globalGeoms, renderSet, cam, octBox, true); // System.out.println("Geoms: "+renderSet.size()); int tris = 0; for (Geometry geom : renderSet){ tris += geom.getTriangleCount(); // geom.setMaterial(mat2); rq.addToQueue(geom, geom.getQueueBucket()); } // Matrix4f transform = new Matrix4f(); // transform.setScale(0.2f, 0.2f, 0.2f); // System.out.println("Tris: "+tris); // tree.renderBounds(rq, transform, box, mat); // renderManager.flushQueue(viewPort); }
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()); } }
geom.updateGeometricState(); geom.setMaterial(mat); rq.addToQueue(geom, Bucket.Opaque); box = null; geom = null;
vp.getQueue().addToQueue(gm, scene.getQueueBucket());