/** * Load the texture linked by given file and set its wrap modes based on given values. * * @param file The <code>String</code> file location. * @param maxU The <code>Float</code> maximum u value. * @param maxV The <code>Float</code> maximum v value. * @return The loaded <code>Texture</code> instance. */ private Texture loadTexture(String file, float maxU, float maxV) { // Add a locator according to the texture string. int last = file.lastIndexOf("/") + 1; if (last < 0) last = file.length(); File path = new File(file.substring(0, last)); try { if (path != null) { SimpleResourceLocator locator = new SimpleResourceLocator(path.toURI().toURL()); ResourceLocatorTool.addResourceLocator(ResourceLocatorTool.TYPE_TEXTURE, locator); } } catch (URISyntaxException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } // Load URL. URL url = ResourceLocatorTool.locateResource(ResourceLocatorTool.TYPE_TEXTURE, file); // Load the texture and set the wrap mode. Texture map = TextureManager.loadTexture(url, this.miniFilter, this.magFilter, this.anisotropic, true); if (map != null) { if (maxU > 1) map.setWrap(Texture.WrapAxis.S, Texture.WrapMode.Repeat); else map.setWrap(Texture.WrapAxis.S, Texture.WrapMode.Clamp); if (maxV > 1) map.setWrap(Texture.WrapAxis.T, Texture.WrapMode.Repeat); else map.setWrap(Texture.WrapAxis.T, Texture.WrapMode.Clamp); } return map; }
static { // Set locations to find resources try { ResourceLocatorTool.addResourceLocator( ResourceLocatorTool.TYPE_TEXTURE, new SimpleResourceLocator(Engine.class.getClassLoader().getResource("textures/"))); ResourceLocatorTool.addResourceLocator( ResourceLocatorTool.TYPE_AUDIO, new SimpleResourceLocator(Engine.class.getClassLoader().getResource("sounds/"))); ResourceLocatorTool.addResourceLocator( "script", new SimpleResourceLocator(Engine.class.getClassLoader().getResource("lib/"))); } catch (URISyntaxException e) { e.printStackTrace(); } }
private TrailManager(final Node root) { this.root = root; trails = new HashMap<Spatial, TrailMesh>(); Renderer r = DisplaySystem.getDisplaySystem().getRenderer(); ts = r.createTextureState(); ts.setEnabled(true); Texture t1 = TextureManager.loadTexture( ResourceLocatorTool.locateResource(ResourceLocatorTool.TYPE_TEXTURE, "trail_y1.png"), Texture.MinificationFilter.Trilinear, Texture.MagnificationFilter.Bilinear); ts.setTexture(t1); bs = r.createBlendState(); bs.setBlendEnabled(true); bs.setSourceFunction(BlendState.SourceFunction.SourceAlpha); bs.setDestinationFunction(BlendState.DestinationFunction.One); bs.setTestEnabled(true); zs = r.createZBufferState(); zs.setWritable(false); cs = r.createCullState(); cs.setCullFace(CullState.Face.None); cs.setEnabled(true); }
/** creates the floor and two walls standing on the floor. */ private void createFloor(float width, float length) { Texture tex = TextureManager.loadTexture( ResourceLocatorTool.locateResource(ResourceLocatorTool.TYPE_TEXTURE, "floor.png"), false); tex.setScale(new Vector3f(10, 10, 10)); tex.setWrap(WrapMode.Repeat); TextureState tsCarpet = DisplaySystem.getDisplaySystem().getRenderer().createTextureState(); tsCarpet.setTexture(tex); StaticPhysicsNode floor = makeWall("floor", width, 0.5f, length, new Vector3f(0, -1, 0), null); floor.setRenderState(tsCarpet); rootNode.attachChild(floor); rootNode.attachChild( makeWall( "back wall", width / 2, 5, 1, new Vector3f(0, 5, -width / 2), MaterialType.GRANITE)); rootNode.attachChild( makeWall( "left wall", 1, 5, width / 2, new Vector3f(-width / 2, 5, 0), MaterialType.GRANITE)); }
/** * set up the scene * * @see com.jme.app.AbstractGame#initGame() */ protected void simpleInitGame() { display.setTitle("Joint Animation"); display.setVSyncEnabled(true); cam.setLocation(new Vector3f(0.0f, 0.0f, 200.0f)); cam.update(); ((FirstPersonHandler) input).getKeyboardLookHandler().setActionSpeed(100); lightState.setEnabled(false); try { ResourceLocatorTool.addResourceLocator( ResourceLocatorTool.TYPE_TEXTURE, new SimpleResourceLocator( TestFireMilk.class.getClassLoader().getResource("jmetest/data/model/msascii/"))); ResourceLocatorTool.addResourceLocator( ResourceLocatorTool.TYPE_TEXTURE, new SimpleResourceLocator( TestFireMilk.class.getClassLoader().getResource("jmetest/data/texture/"))); } catch (URISyntaxException e1) { logger.log(Level.WARNING, "unable to setup texture directories.", e1); } MilkToJme converter = new MilkToJme(); URL MSFile = TestFireMilk.class.getClassLoader().getResource("jmetest/data/model/msascii/run.ms3d"); ByteArrayOutputStream BO = new ByteArrayOutputStream(); try { converter.convert(MSFile.openStream(), BO); } catch (IOException e) { logger.info("IO problem writting the file!!!"); logger.info(e.getMessage()); System.exit(0); } i = null; try { i = (Node) BinaryImporter.getInstance().load(new ByteArrayInputStream(BO.toByteArray())); } catch (IOException e) { logger.info("darn exceptions:" + e.getMessage()); } ((JointController) i.getController(0)).setSpeed(1.0f); ((JointController) i.getController(0)).setRepeatType(Controller.RT_CYCLE); i.setRenderQueueMode(Renderer.QUEUE_OPAQUE); rootNode.attachChild(i); AlphaState as1 = display.getRenderer().createAlphaState(); as1.setBlendEnabled(true); as1.setSrcFunction(AlphaState.SB_SRC_ALPHA); as1.setDstFunction(AlphaState.DB_ONE); as1.setTestEnabled(true); as1.setTestFunction(AlphaState.TF_GREATER); as1.setEnabled(true); TextureState ts = display.getRenderer().createTextureState(); ts.setTexture( TextureManager.loadTexture("flaresmall.jpg", Texture.MM_LINEAR_LINEAR, Texture.FM_LINEAR)); ts.setEnabled(true); ParticleMesh manager = ParticleFactory.buildParticles("particles", 200); manager.setEmissionDirection(new Vector3f(0.0f, 1.0f, 0.0f)); manager.setMaximumAngle(0.20943952f); manager.getParticleController().setSpeed(1.0f); manager.setMinimumLifeTime(150.0f); manager.setMaximumLifeTime(225.0f); manager.setStartSize(8.0f); manager.setEndSize(4.0f); manager.setStartColor(new ColorRGBA(1.0f, 0.312f, 0.121f, 1.0f)); manager.setEndColor(new ColorRGBA(1.0f, 0.312f, 0.121f, 0.0f)); manager.getParticleController().setControlFlow(false); manager.setInitialVelocity(0.12f); manager.setGeometry((Geometry) (i.getChild(0))); manager.warmUp(60); manager.setRenderState(ts); manager.setRenderState(as1); manager.setLightCombineMode(LightState.OFF); manager.setTextureCombineMode(TextureState.REPLACE); ZBufferState zstate = display.getRenderer().createZBufferState(); zstate.setEnabled(false); manager.setRenderState(zstate); rootNode.attachChild(manager); }