Java Code Examples for com.jme3.light.SpotLight#setDirection()
The following examples show how to use
com.jme3.light.SpotLight#setDirection() .
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: TestSpotLightTerrain.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 6 votes |
@Override public void simpleInitApp() { makeTerrain(); flyCam.setMoveSpeed(50); sl = new SpotLight(); sl.setSpotRange(100); sl.setSpotOuterAngle(20 * FastMath.DEG_TO_RAD); sl.setSpotInnerAngle(15 * FastMath.DEG_TO_RAD); sl.setDirection(new Vector3f(-0.39820394f, -0.73094344f, 0.55421597f)); sl.setPosition(new Vector3f(-64.61567f, -87.615425f, -202.41328f)); rootNode.addLight(sl); AmbientLight ambLight = new AmbientLight(); ambLight.setColor(ColorRGBA.Black); rootNode.addLight(ambLight); cam.setLocation(new Vector3f(-41.219646f, 0.8363f, -171.67267f)); cam.setRotation(new Quaternion(-0.04562731f, 0.89917684f, -0.09668826f, -0.4243236f)); sl.setDirection(cam.getDirection()); sl.setPosition(cam.getLocation()); }
Example 2
Source File: LightControl.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 6 votes |
private void spatialToLight(Light light) { final Vector3f worldTranslation = spatial.getWorldTranslation(); if (light instanceof PointLight) { ((PointLight) light).setPosition(worldTranslation); return; } final TempVars vars = TempVars.get(); final Vector3f vec = vars.vect1; if (light instanceof DirectionalLight) { ((DirectionalLight) light).setDirection(vec.set(worldTranslation).multLocal(-1.0f)); } if (light instanceof SpotLight) { final SpotLight spotLight = (SpotLight) light; spotLight.setPosition(worldTranslation); spotLight.setDirection(spatial.getWorldRotation().multLocal(vec.set(Vector3f.UNIT_Y).multLocal(-1))); } vars.release(); }
Example 3
Source File: TestSpotLightTerrain.java From MikuMikuStudio with BSD 2-Clause "Simplified" License | 6 votes |
@Override public void simpleInitApp() { makeTerrain(); flyCam.setMoveSpeed(50); sl = new SpotLight(); sl.setSpotRange(100); sl.setSpotOuterAngle(20 * FastMath.DEG_TO_RAD); sl.setSpotInnerAngle(15 * FastMath.DEG_TO_RAD); sl.setDirection(new Vector3f(-0.39820394f, -0.73094344f, 0.55421597f)); sl.setPosition(new Vector3f(-64.61567f, -87.615425f, -202.41328f)); rootNode.addLight(sl); AmbientLight ambLight = new AmbientLight(); ambLight.setColor(new ColorRGBA(0.8f, 0.8f, 0.8f, 0.2f)); rootNode.addLight(ambLight); cam.setLocation(new Vector3f(-41.219646f, -84.8363f, -171.67267f)); cam.setRotation(new Quaternion(-0.04562731f, 0.89917684f, -0.09668826f, -0.4243236f)); sl.setDirection(cam.getDirection()); sl.setPosition(cam.getLocation()); }
Example 4
Source File: TestJaime.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 5 votes |
public void setupLights() { AmbientLight al = new AmbientLight(); al.setColor(new ColorRGBA(0.1f, 0.1f, 0.1f, 1)); rootNode.addLight(al); SpotLight sl = new SpotLight(); sl.setColor(ColorRGBA.White.mult(1.0f)); sl.setPosition(new Vector3f(1.2074411f, 10.6868908f, 4.1489987f)); sl.setDirection(sl.getPosition().mult(-1)); sl.setSpotOuterAngle(0.1f); sl.setSpotInnerAngle(0.004f); rootNode.addLight(sl); //pointlight to fake indirect light coming from the ground PointLight pl = new PointLight(); pl.setColor(ColorRGBA.White.mult(1.5f)); pl.setPosition(new Vector3f(0, 0, 1)); pl.setRadius(2); rootNode.addLight(pl); SpotLightShadowRenderer shadows = new SpotLightShadowRenderer(assetManager, 1024); shadows.setLight(sl); shadows.setShadowIntensity(0.3f); shadows.setEdgeFilteringMode(EdgeFilteringMode.PCF8); viewPort.addProcessor(shadows); FilterPostProcessor fpp = new FilterPostProcessor(assetManager); SSAOFilter filter = new SSAOFilter(0.10997847f,0.440001f,0.39999998f,-0.008000026f);; fpp.addFilter(filter); fpp.addFilter(new FXAAFilter()); fpp.addFilter(new FXAAFilter()); viewPort.addProcessor(fpp); }
Example 5
Source File: TestSpotLight.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 5 votes |
public void setupLighting(){ AmbientLight al=new AmbientLight(); al.setColor(ColorRGBA.White.mult(0.02f)); rootNode.addLight(al); spot=new SpotLight(); spot.setSpotRange(1000); spot.setSpotInnerAngle(5*FastMath.DEG_TO_RAD); spot.setSpotOuterAngle(10*FastMath.DEG_TO_RAD); spot.setPosition(new Vector3f(77.70334f, 34.013165f, 27.1017f)); spot.setDirection(lightTarget.subtract(spot.getPosition())); spot.setColor(ColorRGBA.White.mult(2)); rootNode.addLight(spot); // PointLight pl=new PointLight(); // pl.setPosition(new Vector3f(77.70334f, 34.013165f, 27.1017f)); // pl.setRadius(1000); // pl.setColor(ColorRGBA.White.mult(2)); // rootNode.addLight(pl); lightMdl = new Geometry("Light", new Sphere(10, 10, 0.1f)); lightMdl.setMaterial(assetManager.loadMaterial("Common/Materials/RedColor.j3m")); lightMdl.setLocalTranslation(new Vector3f(77.70334f, 34.013165f, 27.1017f)); lightMdl.setLocalScale(5); rootNode.attachChild(lightMdl); // DirectionalLight dl = new DirectionalLight(); // dl.setDirection(lightTarget.subtract(new Vector3f(77.70334f, 34.013165f, 27.1017f))); // dl.setColor(ColorRGBA.White.mult(2)); // rootNode.addLight(dl); }
Example 6
Source File: TestSpotLight.java From MikuMikuStudio with BSD 2-Clause "Simplified" License | 5 votes |
public void setupLighting(){ AmbientLight al=new AmbientLight(); al.setColor(ColorRGBA.White.mult(0.8f)); rootNode.addLight(al); spot=new SpotLight(); spot.setSpotRange(1000); spot.setSpotInnerAngle(5*FastMath.DEG_TO_RAD); spot.setSpotOuterAngle(10*FastMath.DEG_TO_RAD); spot.setPosition(new Vector3f(77.70334f, 34.013165f, 27.1017f)); spot.setDirection(lightTarget.subtract(spot.getPosition())); spot.setColor(ColorRGBA.White.mult(2)); rootNode.addLight(spot); // PointLight pl=new PointLight(); // pl.setPosition(new Vector3f(77.70334f, 34.013165f, 27.1017f)); // pl.setRadius(1000); // pl.setColor(ColorRGBA.White.mult(2)); // rootNode.addLight(pl); lightMdl = new Geometry("Light", new Sphere(10, 10, 0.1f)); lightMdl.setMaterial(assetManager.loadMaterial("Common/Materials/RedColor.j3m")); lightMdl.setLocalTranslation(new Vector3f(77.70334f, 34.013165f, 27.1017f)); lightMdl.setLocalScale(5); rootNode.attachChild(lightMdl); // DirectionalLight dl = new DirectionalLight(); // dl.setDirection(lightTarget.subtract(new Vector3f(77.70334f, 34.013165f, 27.1017f))); // dl.setColor(ColorRGBA.White.mult(2)); // rootNode.addLight(dl); }
Example 7
Source File: TestPointDirectionalAndSpotLightShadows.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 4 votes |
@Override public void simpleInitApp() { flyCam.setMoveSpeed(10); cam.setLocation(new Vector3f(0.040581334f, 1.7745866f, 6.155161f)); cam.setRotation(new Quaternion(4.3868728E-5f, 0.9999293f, -0.011230096f, 0.0039059948f)); Node scene = (Node) assetManager.loadModel("Models/Test/CornellBox.j3o"); scene.setShadowMode(RenderQueue.ShadowMode.CastAndReceive); rootNode.attachChild(scene); rootNode.getChild("Cube").setShadowMode(RenderQueue.ShadowMode.Receive); lightNode = (Node) rootNode.getChild("Lamp"); Geometry lightMdl = new Geometry("Light", new Sphere(10, 10, 0.1f)); //Geometry lightMdl = new Geometry("Light", new Box(.1f,.1f,.1f)); lightMdl.setMaterial(assetManager.loadMaterial("Common/Materials/RedColor.j3m")); lightMdl.setShadowMode(RenderQueue.ShadowMode.Off); lightNode.attachChild(lightMdl); //lightMdl.setLocalTranslation(lightNode.getLocalTranslation()); Geometry box = new Geometry("box", new Box(0.2f, 0.2f, 0.2f)); //Geometry lightMdl = new Geometry("Light", new Box(.1f,.1f,.1f)); box.setMaterial(assetManager.loadMaterial("Common/Materials/RedColor.j3m")); box.setShadowMode(RenderQueue.ShadowMode.CastAndReceive); rootNode.attachChild(box); box.setLocalTranslation(-1f, 0.5f, -2); scene.getLocalLightList().get(0).setColor(ColorRGBA.Red); plsr = new PointLightShadowRenderer(assetManager, SHADOWMAP_SIZE); plsr.setLight((PointLight) scene.getLocalLightList().get(0)); plsr.setEdgeFilteringMode(EdgeFilteringMode.PCF4); plsf = new PointLightShadowFilter(assetManager, SHADOWMAP_SIZE); plsf.setLight((PointLight) scene.getLocalLightList().get(0)); plsf.setEdgeFilteringMode(EdgeFilteringMode.PCF4); plsf.setEnabled(useFilter); //DIRECTIONAL LIGHT DirectionalLight directionalLight = new DirectionalLight(); rootNode.addLight(directionalLight); directionalLight.setColor(ColorRGBA.Blue); directionalLight.setDirection(new Vector3f(-1f, -.2f, 0f)); dlsr = new DirectionalLightShadowRenderer(assetManager, SHADOWMAP_SIZE*2, 4); dlsr.setLight(directionalLight); dlsr.setEdgeFilteringMode(EdgeFilteringMode.PCF4); dlsf = new DirectionalLightShadowFilter(assetManager, SHADOWMAP_SIZE*2, 4); dlsf.setEdgeFilteringMode(EdgeFilteringMode.PCF4); dlsf.setLight(directionalLight); dlsf.setEnabled(useFilter); //SPOT LIGHT spotLight = new SpotLight(); spotLight.setDirection(new Vector3f(1f,-1f,0f)); spotLight.setPosition(new Vector3f(-1f,3f,0f)); spotLight.setSpotOuterAngle(0.5f); spotLight.setColor(ColorRGBA.Green); Sphere sphere = new Sphere(8, 8, .1f); Geometry sphereGeometry = new Geometry("Sphere", sphere); sphereGeometry.setLocalTranslation(-1f, 3f, 0f); sphereGeometry.setMaterial(assetManager.loadMaterial("Common/Materials/WhiteColor.j3m")); rootNode.attachChild(sphereGeometry); rootNode.addLight(spotLight); slsr = new SpotLightShadowRenderer(assetManager, SHADOWMAP_SIZE); slsr.setLight(spotLight); slsr.setEdgeFilteringMode(EdgeFilteringMode.PCF4); slsf = new SpotLightShadowFilter(assetManager, SHADOWMAP_SIZE); slsf.setLight(spotLight); slsf.setEdgeFilteringMode(EdgeFilteringMode.PCF4); slsf.setEnabled(useFilter); if (!useFilter)viewPort.addProcessor(slsr); if (!useFilter)viewPort.addProcessor(plsr); if (!useFilter)viewPort.addProcessor(dlsr); FilterPostProcessor fpp = new FilterPostProcessor(assetManager); fpp.addFilter(plsf); fpp.addFilter(dlsf); fpp.addFilter(slsf); viewPort.addProcessor(fpp); ShadowTestUIManager uiMan = new ShadowTestUIManager(assetManager, plsr, plsf, guiNode, inputManager, viewPort); ShadowTestUIManager uiManPls = new ShadowTestUIManager(assetManager, plsr, plsf, guiNode, inputManager, viewPort); ShadowTestUIManager uiManDls = new ShadowTestUIManager(assetManager, dlsr, dlsf, guiNode, inputManager, viewPort); ShadowTestUIManager uiManSls = new ShadowTestUIManager(assetManager, slsr, slsf, guiNode, inputManager, viewPort); }
Example 8
Source File: TestSpotLightShadows.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 4 votes |
public void setupLighting() { AmbientLight al = new AmbientLight(); al.setColor(ColorRGBA.White.mult(0.02f)); rootNode.addLight(al); rootNode.setShadowMode(ShadowMode.CastAndReceive); spot = new SpotLight(); spot.setSpotRange(1000); spot.setSpotInnerAngle(5f * FastMath.DEG_TO_RAD); spot.setSpotOuterAngle(10 * FastMath.DEG_TO_RAD); spot.setPosition(new Vector3f(70.70334f, 34.013165f, 27.1017f)); spot.setDirection(lightTarget.subtract(spot.getPosition()).normalizeLocal()); spot.setColor(ColorRGBA.White.mult(2)); rootNode.addLight(spot); // PointLight pl=new PointLight(); // pl.setPosition(new Vector3f(77.70334f, 34.013165f, 27.1017f)); // pl.setRadius(1000); // pl.setColor(ColorRGBA.White.mult(2)); // rootNode.addLight(pl); lightMdl = new Geometry("Light", new Sphere(10, 10, 0.1f)); lightMdl.setMaterial(assetManager.loadMaterial("Common/Materials/RedColor.j3m")); lightMdl.setLocalTranslation(new Vector3f(77.70334f, 34.013165f, 27.1017f)); lightMdl.setLocalScale(5); rootNode.attachChild(lightMdl); // DirectionalLight dl = new DirectionalLight(); // dl.setDirection(lightTarget.subtract(new Vector3f(77.70334f, 34.013165f, 27.1017f))); // dl.setColor(ColorRGBA.White.mult(0.7f)); // rootNode.addLight(dl); final SpotLightShadowRenderer slsr = new SpotLightShadowRenderer(assetManager, 512); slsr.setLight(spot); slsr.setShadowIntensity(0.5f); slsr.setShadowZExtend(100); slsr.setShadowZFadeLength(5); slsr.setEdgeFilteringMode(EdgeFilteringMode.PCFPOISSON); viewPort.addProcessor(slsr); SpotLightShadowFilter slsf = new SpotLightShadowFilter(assetManager, 512); slsf.setLight(spot); slsf.setShadowIntensity(0.5f); slsf.setShadowZExtend(100); slsf.setShadowZFadeLength(5); slsf.setEdgeFilteringMode(EdgeFilteringMode.PCFPOISSON); slsf.setEnabled(false); FilterPostProcessor fpp = new FilterPostProcessor(assetManager); fpp.addFilter(slsf); viewPort.addProcessor(fpp); ShadowTestUIManager uiMan = new ShadowTestUIManager(assetManager, slsr, slsf, guiNode, inputManager, viewPort); inputManager.addListener(new ActionListener() { @Override public void onAction(String name, boolean isPressed, float tpf) { if (name.equals("stop") && isPressed) { stop = !stop; // slsr.displayFrustum(); System.out.println("pos : " + spot.getPosition()); System.out.println("dir : " + spot.getDirection()); } } }, "stop"); inputManager.addMapping("stop", new KeyTrigger(KeyInput.KEY_1)); flyCam.setDragToRotate(true); }
Example 9
Source File: TestShadowBug.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 4 votes |
@Override public void simpleInitApp() { flyCam.setMoveSpeed(100f); rootNode.attachChild(makeFloor()); Node characters = new Node("Characters"); characters.setShadowMode(ShadowMode.Cast); rootNode.attachChild(characters); Spatial golem = assetManager.loadModel("Models/Oto/Oto.mesh.xml"); golem.scale(0.5f); golem.setLocalTranslation(200.0f, -6f, 200f); golem.setShadowMode(ShadowMode.CastAndReceive); characters.attachChild(golem); DirectionalLight sun = new DirectionalLight(); sun.setDirection(new Vector3f(-1f, -1f, 1f)); sun.setColor(ColorRGBA.White.mult(1.3f)); rootNode.addLight(sun); characters.addLight(sun); SpotLight spot = new SpotLight(); spot.setSpotRange(13f); // distance spot.setSpotInnerAngle(15f * FastMath.DEG_TO_RAD); // inner light cone (central beam) spot.setSpotOuterAngle(20f * FastMath.DEG_TO_RAD); // outer light cone (edge of the light) spot.setColor(ColorRGBA.White.mult(1.3f)); // light color spot.setPosition(new Vector3f(192.0f, -1f, 192f)); spot.setDirection(new Vector3f(1, -0.5f, 1)); rootNode.addLight(spot); PointLight lamp_light = new PointLight(); lamp_light.setColor(ColorRGBA.Yellow); lamp_light.setRadius(20f); lamp_light.setPosition(new Vector3f(210.0f, 0f, 210f)); rootNode.addLight(lamp_light); SpotLightShadowRenderer slsr = new SpotLightShadowRenderer(assetManager, 512); slsr.setLight(spot); slsr.setEdgeFilteringMode(EdgeFilteringMode.Nearest); slsr.setShadowIntensity(0.6f); viewPort.addProcessor(slsr); PointLightShadowRenderer plsr = new PointLightShadowRenderer(assetManager, 512); plsr.setLight(lamp_light); plsr.setShadowIntensity(0.6f); plsr.setEdgeFilteringMode(EdgeFilteringMode.Nearest); viewPort.addProcessor(plsr); viewPort.getCamera().setLocation(new Vector3f(192.0f, 10f, 192f)); float[] angles = new float[]{3.14f/2, 3.14f/2, 0}; viewPort.getCamera().setRotation(new Quaternion(angles)); }