public static Quad newFullScreenQuad() { final Quad quad = new Quad("fsq", 2, 2); final SceneHints sceneHints = quad.getSceneHints(); sceneHints.setCullHint(CullHint.Never); sceneHints.setRenderBucketType(RenderBucketType.OrthoOrder); sceneHints.setLightCombineMode(LightCombineMode.Off); sceneHints.setTextureCombineMode(TextureCombineMode.Replace); return quad; } }
@Override public void write(final OutputCapsule capsule) throws IOException { super.write(capsule); capsule.write(_texture, "texture", null); capsule.write(_targetScene, "targetScene", null); capsule.write(_imposterQuad, "standIn", new Quad("ImposterQuad")); capsule.write(_redrawRate, "redrawRate", 0.05f); capsule.write(_cameraAngleThreshold, "cameraThreshold", 0); capsule.write(_worldUpVector, "worldUpVector", new Vector3(Vector3.UNIT_Y)); }
@Override public void write(final OutputCapsule capsule) throws IOException { super.write(capsule); capsule.write(_texture, "texture", null); capsule.write(_targetScene, "targetScene", null); capsule.write(_imposterQuad, "standIn", new Quad("ImposterQuad")); capsule.write(_redrawRate, "redrawRate", 0.05f); capsule.write(_cameraAngleThreshold, "cameraThreshold", 0); capsule.write(_worldUpVector, "worldUpVector", new Vector3(Vector3.UNIT_Y)); }
@Override public void read(final InputCapsule capsule) throws IOException { super.read(capsule); _texture = (Texture2D) capsule.readSavable("texture", null); _targetScene = (Node) capsule.readSavable("targetScene", null); _imposterQuad = (Quad) capsule.readSavable("standIn", new Quad("ImposterQuad")); _redrawRate = capsule.readFloat("redrawRate", 0.05f); _cameraAngleThreshold = capsule.readFloat("cameraThreshold", 0); _worldUpVector = (Vector3) capsule.readSavable("worldUpVector", new Vector3(Vector3.UNIT_Y)); }
@Override public void read(final InputCapsule capsule) throws IOException { super.read(capsule); _texture = (Texture2D) capsule.readSavable("texture", null); _targetScene = (Node) capsule.readSavable("targetScene", null); _imposterQuad = (Quad) capsule.readSavable("standIn", new Quad("ImposterQuad")); _redrawRate = capsule.readFloat("redrawRate", 0.05f); _cameraAngleThreshold = capsule.readFloat("cameraThreshold", 0); _worldUpVector = (Vector3) capsule.readSavable("worldUpVector", new Vector3(Vector3.UNIT_Y)); }
_skyboxQuads[Face.North.ordinal()] = new Quad("north", _xExtent * 2, _yExtent * 2); _skyboxQuads[Face.North.ordinal()].setRotation(new Matrix3().fromAngles(0, Math.toRadians(180), 0)); _skyboxQuads[Face.North.ordinal()].setTranslation(new Vector3(0, 0, _zExtent)); _skyboxQuads[Face.South.ordinal()] = new Quad("south", _xExtent * 2, _yExtent * 2); _skyboxQuads[Face.South.ordinal()].setTranslation(new Vector3(0, 0, -_zExtent)); _skyboxQuads[Face.East.ordinal()] = new Quad("east", _zExtent * 2, _yExtent * 2); _skyboxQuads[Face.East.ordinal()].setRotation(new Matrix3().fromAngles(0, Math.toRadians(90), 0)); _skyboxQuads[Face.East.ordinal()].setTranslation(new Vector3(-_xExtent, 0, 0)); _skyboxQuads[Face.West.ordinal()] = new Quad("west", _zExtent * 2, _yExtent * 2); _skyboxQuads[Face.West.ordinal()].setRotation(new Matrix3().fromAngles(0, Math.toRadians(270), 0)); _skyboxQuads[Face.West.ordinal()].setTranslation(new Vector3(_xExtent, 0, 0)); _skyboxQuads[Face.Up.ordinal()] = new Quad("up", _xExtent * 2, _zExtent * 2); _skyboxQuads[Face.Up.ordinal()] .setRotation(new Matrix3().fromAngles(Math.toRadians(90), Math.toRadians(270), 0)); _skyboxQuads[Face.Up.ordinal()].setTranslation(new Vector3(0, _yExtent, 0)); _skyboxQuads[Face.Down.ordinal()] = new Quad("down", _xExtent * 2, _zExtent * 2); _skyboxQuads[Face.Down.ordinal()] .setRotation(new Matrix3().fromAngles(Math.toRadians(270), Math.toRadians(270), 0));
_skyboxQuads[Face.North.ordinal()] = new Quad("north", _xExtent * 2, _yExtent * 2); _skyboxQuads[Face.North.ordinal()].setRotation(new Matrix3().fromAngles(0, Math.toRadians(180), 0)); _skyboxQuads[Face.North.ordinal()].setTranslation(new Vector3(0, 0, _zExtent)); _skyboxQuads[Face.South.ordinal()] = new Quad("south", _xExtent * 2, _yExtent * 2); _skyboxQuads[Face.South.ordinal()].setTranslation(new Vector3(0, 0, -_zExtent)); _skyboxQuads[Face.East.ordinal()] = new Quad("east", _zExtent * 2, _yExtent * 2); _skyboxQuads[Face.East.ordinal()].setRotation(new Matrix3().fromAngles(0, Math.toRadians(90), 0)); _skyboxQuads[Face.East.ordinal()].setTranslation(new Vector3(-_xExtent, 0, 0)); _skyboxQuads[Face.West.ordinal()] = new Quad("west", _zExtent * 2, _yExtent * 2); _skyboxQuads[Face.West.ordinal()].setRotation(new Matrix3().fromAngles(0, Math.toRadians(270), 0)); _skyboxQuads[Face.West.ordinal()].setTranslation(new Vector3(_xExtent, 0, 0)); _skyboxQuads[Face.Up.ordinal()] = new Quad("up", _xExtent * 2, _zExtent * 2); _skyboxQuads[Face.Up.ordinal()] .setRotation(new Matrix3().fromAngles(Math.toRadians(90), Math.toRadians(270), 0)); _skyboxQuads[Face.Up.ordinal()].setTranslation(new Vector3(0, _yExtent, 0)); _skyboxQuads[Face.Down.ordinal()] = new Quad("down", _xExtent * 2, _zExtent * 2); _skyboxQuads[Face.Down.ordinal()].setRotation(new Matrix3().fromAngles(Math.toRadians(270), Math.toRadians(270), 0));
@MainThread public void init() { // tell our parent to lay us out so we have the right starting size. getParent().layout(); _quad = new Quad("fsq", 2, 2); _quad.setRenderMaterial("unlit/textured/fsq.yaml"); _quad.setModelBound(new BoundingBox()); _quad.getSceneHints().setLightCombineMode(LightCombineMode.Off); _quad.getSceneHints().setTextureCombineMode(TextureCombineMode.Replace); _quad.getSceneHints().setRenderBucketType(RenderBucketType.Skip); checkRTT(); _canvasRenderer.getCamera().apply(_canvasRenderer.getRenderer()); _inited = true; }
public QuadImposterNode(final String name, final int twidth, final int theight, final int depth, final int samples, final Timer timer) { super(name); _twidth = twidth; _theight = theight; _depth = depth; _samples = samples; _timer = timer; _texture = new Texture2D(); _imposterQuad = new Quad("ImposterQuad"); _imposterQuad.resize(1, 1); _imposterQuad.setModelBound(new BoundingBox()); _imposterQuad.getSceneHints().setTextureCombineMode(TextureCombineMode.Replace); _imposterQuad.getSceneHints().setLightCombineMode(LightCombineMode.Off); super.attachChild(_imposterQuad); getSceneHints().setRenderBucketType(RenderBucketType.Transparent); _targetScene = new Node(); super.attachChild(_targetScene); for (int i = 0; i < _corners.length; i++) { _corners[i] = new Vector3(); } if (timer != null) { _redrawRate = _elapsed = 0.05; // 20x per sec } else { setCameraAngleThreshold(10.0); setCameraDistanceThreshold(0.2); } _haveDrawn = false; }
fullScreenQuad = new Quad("FullScreenQuad", cam.getWidth() / 4, cam.getHeight() / 4); fullScreenQuad.setTranslation(cam.getWidth() / 2, cam.getHeight() / 2, 0); fullScreenQuad.getSceneHints().setRenderBucketType(RenderBucketType.Ortho);
public QuadImposterNode(final String name, final int twidth, final int theight, final int depth, final int samples, final Timer timer) { super(name); _twidth = twidth; _theight = theight; _depth = depth; _samples = samples; _timer = timer; _texture = new Texture2D(); _imposterQuad = new Quad("ImposterQuad"); _imposterQuad.resize(1, 1); _imposterQuad.setModelBound(new BoundingBox()); _imposterQuad.getSceneHints().setTextureCombineMode(TextureCombineMode.Replace); _imposterQuad.getSceneHints().setLightCombineMode(LightCombineMode.Off); super.attachChild(_imposterQuad); getSceneHints().setRenderBucketType(RenderBucketType.Transparent); _targetScene = new Node(); super.attachChild(_targetScene); for (int i = 0; i < _corners.length; i++) { _corners[i] = new Vector3(); } if (timer != null) { _redrawRate = _elapsed = 0.05; // 20x per sec } else { setCameraAngleThreshold(10.0); setCameraDistanceThreshold(0.2); } _haveDrawn = false; }
fullScreenQuad = new Quad("FullScreenQuad", cam.getWidth() / 4, cam.getHeight() / 4); fullScreenQuad.setTranslation(cam.getWidth() / 2, cam.getHeight() / 2, 0); fullScreenQuad.getSceneHints().setRenderBucketType(RenderBucketType.Ortho);