Java Code Examples for com.jme3.material.Material#setTexture()
The following examples show how to use
com.jme3.material.Material#setTexture() .
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: TestParticleExportingCloning.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 6 votes |
@Override public void simpleInitApp() { ParticleEmitter emit = new ParticleEmitter("Emitter", Type.Triangle, 200); emit.setShape(new EmitterSphereShape(Vector3f.ZERO, 1f)); emit.setGravity(0, 0, 0); emit.setLowLife(5); emit.setHighLife(10); emit.getParticleInfluencer().setInitialVelocity(new Vector3f(0, 0, 0)); emit.setImagesX(15); Material mat = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md"); mat.setTexture("Texture", assetManager.loadTexture("Effects/Smoke/Smoke.png")); emit.setMaterial(mat); ParticleEmitter emit2 = emit.clone(); emit2.move(3, 0, 0); rootNode.attachChild(emit); rootNode.attachChild(emit2); ParticleEmitter emit3 = BinaryExporter.saveAndLoad(assetManager, emit); emit3.move(-3, 0, 0); rootNode.attachChild(emit3); }
Example 2
Source File: HDRRenderer.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 6 votes |
public Picture createDisplayQuad(/*int mode, Texture tex*/){ if (scene64 == null) return null; Material mat = new Material(manager, "Common/MatDefs/Hdr/LogLum.j3md"); // if (mode == LUMMODE_ENCODE_LUM) // mat.setBoolean("EncodeLum", true); // else if (mode == LUMMODE_DECODE_LUM) mat.setBoolean("DecodeLum", true); mat.setTexture("Texture", scene64); // mat.setTexture("Texture", tex); Picture dispQuad = new Picture("Luminance Display"); dispQuad.setMaterial(mat); return dispQuad; }
Example 3
Source File: TestNiftyGui.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 6 votes |
@Override public void simpleInitApp() { Box b = new Box(1, 1, 1); Geometry geom = new Geometry("Box", b); Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); mat.setTexture("ColorMap", assetManager.loadTexture("Interface/Logo/Monkey.jpg")); geom.setMaterial(mat); rootNode.attachChild(geom); NiftyJmeDisplay niftyDisplay = NiftyJmeDisplay.newNiftyJmeDisplay( assetManager, inputManager, audioRenderer, guiViewPort); nifty = niftyDisplay.getNifty(); nifty.fromXml("Interface/Nifty/HelloJme.xml", "start", this); // attach the nifty display to the gui view port as a processor guiViewPort.addProcessor(niftyDisplay); // disable the fly cam // flyCam.setEnabled(false); // flyCam.setDragToRotate(true); inputManager.setCursorVisible(true); }
Example 4
Source File: TestExplosionEffect.java From MikuMikuStudio with BSD 2-Clause "Simplified" License | 6 votes |
private void createFlash(){ flash = new ParticleEmitter("Flash", EMITTER_TYPE, 24 * COUNT_FACTOR); flash.setSelectRandomImage(true); flash.setStartColor(new ColorRGBA(1f, 0.8f, 0.36f, (float) (1f / COUNT_FACTOR_F))); flash.setEndColor(new ColorRGBA(1f, 0.8f, 0.36f, 0f)); flash.setStartSize(.1f); flash.setEndSize(3.0f); flash.setShape(new EmitterSphereShape(Vector3f.ZERO, .05f)); flash.setParticlesPerSec(0); flash.setGravity(0, 0, 0); flash.setLowLife(.2f); flash.setHighLife(.2f); flash.setInitialVelocity(new Vector3f(0, 5f, 0)); flash.setVelocityVariation(1); flash.setImagesX(2); flash.setImagesY(2); Material mat = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md"); mat.setTexture("Texture", assetManager.loadTexture("Effects/Explosion/flash.png")); mat.setBoolean("PointSprite", POINT_SPRITE); flash.setMaterial(mat); explosionEffect.attachChild(flash); }
Example 5
Source File: TestRenderToTexture.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 6 votes |
@Override public void simpleInitApp() { cam.setLocation(new Vector3f(3, 3, 3)); cam.lookAt(Vector3f.ZERO, Vector3f.UNIT_Y); //setup main scene Geometry quad = new Geometry("box", new Box(1, 1, 1)); Texture offTex = setupOffscreenView(); Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); mat.setTexture("ColorMap", offTex); quad.setMaterial(mat); rootNode.attachChild(quad); inputManager.addMapping(TOGGLE_UPDATE, new KeyTrigger(KeyInput.KEY_SPACE)); inputManager.addListener(this, TOGGLE_UPDATE); }
Example 6
Source File: TestTransparentCartoonEdge.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 6 votes |
public void makeToonish(Spatial spatial){ if (spatial instanceof Node){ Node n = (Node) spatial; for (Spatial child : n.getChildren()) makeToonish(child); }else if (spatial instanceof Geometry){ Geometry g = (Geometry) spatial; Material m = g.getMaterial(); if (m.getMaterialDef().getName().equals("Phong Lighting")){ Texture t = assetManager.loadTexture("Textures/ColorRamp/toon.png"); // t.setMinFilter(Texture.MinFilter.NearestNoMipMaps); // t.setMagFilter(Texture.MagFilter.Nearest); m.setTexture("ColorRamp", t); m.setBoolean("UseMaterialColors", true); m.setColor("Specular", ColorRGBA.Black); m.setColor("Diffuse", ColorRGBA.White); m.setBoolean("VertexLighting", true); } } }
Example 7
Source File: TestMovingParticle.java From MikuMikuStudio with BSD 2-Clause "Simplified" License | 6 votes |
@Override public void simpleInitApp() { emit = new ParticleEmitter("Emitter", Type.Triangle, 300); emit.setGravity(0, 0, 0); emit.setVelocityVariation(1); emit.setLowLife(1); emit.setHighLife(1); emit.setInitialVelocity(new Vector3f(0, .5f, 0)); emit.setImagesX(15); Material mat = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md"); mat.setTexture("Texture", assetManager.loadTexture("Effects/Smoke/Smoke.png")); emit.setMaterial(mat); rootNode.attachChild(emit); inputManager.addListener(new ActionListener() { public void onAction(String name, boolean isPressed, float tpf) { if ("setNum".equals(name) && isPressed) { emit.setNumParticles(1000); } } }, "setNum"); inputManager.addMapping("setNum", new KeyTrigger(KeyInput.KEY_SPACE)); }
Example 8
Source File: TestCartoonEdge.java From MikuMikuStudio with BSD 2-Clause "Simplified" License | 6 votes |
public void makeToonish(Spatial spatial){ if (spatial instanceof Node){ Node n = (Node) spatial; for (Spatial child : n.getChildren()) makeToonish(child); }else if (spatial instanceof Geometry){ Geometry g = (Geometry) spatial; Material m = g.getMaterial(); if (m.getMaterialDef().getName().equals("Phong Lighting")){ Texture t = assetManager.loadTexture("Textures/ColorRamp/toon.png"); // t.setMinFilter(Texture.MinFilter.NearestNoMipMaps); // t.setMagFilter(Texture.MagFilter.Nearest); m.setTexture("ColorRamp", t); m.setBoolean("UseMaterialColors", true); m.setColor("Specular", ColorRGBA.Black); m.setColor("Diffuse", ColorRGBA.White); m.setBoolean("VertexLighting", true); } } }
Example 9
Source File: TestExplosionEffect.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 6 votes |
private void createFlash(){ flash = new ParticleEmitter("Flash", EMITTER_TYPE, 24 * COUNT_FACTOR); flash.setSelectRandomImage(true); flash.setStartColor(new ColorRGBA(1f, 0.8f, 0.36f, 1f / COUNT_FACTOR_F)); flash.setEndColor(new ColorRGBA(1f, 0.8f, 0.36f, 0f)); flash.setStartSize(.1f); flash.setEndSize(3.0f); flash.setShape(new EmitterSphereShape(Vector3f.ZERO, .05f)); flash.setParticlesPerSec(0); flash.setGravity(0, 0, 0); flash.setLowLife(.2f); flash.setHighLife(.2f); flash.getParticleInfluencer() .setInitialVelocity(new Vector3f(0, 5f, 0)); flash.getParticleInfluencer().setVelocityVariation(1); flash.setImagesX(2); flash.setImagesY(2); Material mat = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md"); mat.setTexture("Texture", assetManager.loadTexture("Effects/Explosion/flash.png")); mat.setBoolean("PointSprite", POINT_SPRITE); flash.setMaterial(mat); explosionEffect.attachChild(flash); }
Example 10
Source File: TestUrlLoading.java From MikuMikuStudio with BSD 2-Clause "Simplified" License | 6 votes |
@Override public void simpleInitApp() { // create a simple plane/quad Quad quadMesh = new Quad(1, 1); quadMesh.updateGeometry(1, 1, true); Geometry quad = new Geometry("Textured Quad", quadMesh); assetManager.registerLocator("http://www.jmonkeyengine.com/wp-content/uploads/2010/09/", UrlLocator.class); TextureKey key = new TextureKey("planet-2.jpg", false); key.setGenerateMips(true); Texture tex = assetManager.loadTexture(key); Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); mat.setTexture("ColorMap", tex); quad.setMaterial(mat); float aspect = tex.getImage().getWidth() / (float) tex.getImage().getHeight(); quad.setLocalScale(new Vector3f(aspect * 1.5f, 1.5f, 1)); quad.center(); rootNode.attachChild(quad); }
Example 11
Source File: BitmapText.java From MikuMikuStudio with BSD 2-Clause "Simplified" License | 5 votes |
public void render(RenderManager rm) { for (BitmapTextPage page : textPages) { Material mat = page.getMaterial(); mat.setTexture("Texture", page.getTexture()); mat.render(page, rm); } }
Example 12
Source File: TestToneMapFilter.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 5 votes |
public Geometry createHDRBox(){ Box boxMesh = new Box(1, 1, 1); Geometry box = new Geometry("Box", boxMesh); Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); mat.setTexture("ColorMap", assetManager.loadTexture("Textures/HdrTest/Memorial.hdr")); box.setMaterial(mat); return box; }
Example 13
Source File: AbstractShadowRendererVR.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 5 votes |
private void setMatParams(GeometryList l) { //iteration throught all the geometries of the list to gather the materials buildMatCache(l); //iterating through the mat cache and setting the parameters for (Material mat : matCache) { mat.setFloat("ShadowMapSize", shadowMapSize); for (int j = 0; j < nbShadowMaps; j++) { mat.setMatrix4(lightViewStringCache[j], lightViewProjectionsMatrices[j]); } for (int j = 0; j < nbShadowMaps; j++) { mat.setTexture(shadowMapStringCache[j], shadowMaps[j]); } mat.setBoolean("HardwareShadows", shadowCompareMode == CompareMode.Hardware); mat.setInt("FilterMode", edgeFilteringMode.getMaterialParamValue()); mat.setFloat("PCFEdge", edgesThickness); mat.setFloat("ShadowIntensity", shadowIntensity); mat.setBoolean("BackfaceShadows", renderBackFacesShadows); if (fadeInfo != null) { mat.setVector2("FadeInfo", fadeInfo); } setMaterialParameters(mat); } //At least one material of the receiving geoms does not support the post shadow techniques //so we fall back to the forced material solution (transparent shadows won't be supported for these objects) if (needsfallBackMaterial) { setPostShadowParams(); } }
Example 14
Source File: TestColoredTexture.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 5 votes |
@Override public void simpleInitApp() { Quad quadMesh = new Quad(512,512); Geometry quad = new Geometry("Quad", quadMesh); quad.setQueueBucket(Bucket.Gui); mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); mat.setTexture("ColorMap", assetManager.loadTexture("Textures/ColoredTex/Monkey.png")); quad.setMaterial(mat); guiNode.attachChildAt(quad, 0); nextColor = ColorRGBA.randomColor(); prevColor = ColorRGBA.Black; }
Example 15
Source File: TestChaseCamera.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 4 votes |
@Override public void simpleInitApp() { // Load a teapot model teaGeom = (Geometry) assetManager.loadModel("Models/Teapot/Teapot.obj"); Material mat_tea = new Material(assetManager, "Common/MatDefs/Misc/ShowNormals.j3md"); teaGeom.setMaterial(mat_tea); rootNode.attachChild(teaGeom); // Load a floor model Material mat_ground = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); mat_ground.setTexture("ColorMap", assetManager.loadTexture("Interface/Logo/Monkey.jpg")); Geometry ground = new Geometry("ground", new Quad(50, 50)); ground.setLocalRotation(new Quaternion().fromAngleAxis(-FastMath.HALF_PI, Vector3f.UNIT_X)); ground.setLocalTranslation(-25, -1, 25); ground.setMaterial(mat_ground); rootNode.attachChild(ground); // Disable the default first-person cam! flyCam.setEnabled(false); // Enable a chase cam chaseCam = new ChaseCamera(cam, teaGeom, inputManager); //Uncomment this to invert the camera's vertical rotation Axis //chaseCam.setInvertVerticalAxis(true); //Uncomment this to invert the camera's horizontal rotation Axis //chaseCam.setInvertHorizontalAxis(true); //Comment this to disable smooth camera motion chaseCam.setSmoothMotion(true); //Uncomment this to disable trailing of the camera //WARNING, trailing only works with smooth motion enabled. It is true by default. //chaseCam.setTrailingEnabled(false); //Uncomment this to look 3 world units above the target //chaseCam.setLookAtOffset(Vector3f.UNIT_Y.mult(3)); //Uncomment this to enable rotation when the middle mouse button is pressed (like Blender) //WARNING : setting this trigger disable the rotation on right and left mouse button click //chaseCam.setToggleRotationTrigger(new MouseButtonTrigger(MouseInput.BUTTON_MIDDLE)); //Uncomment this to set multiple triggers to enable rotation of the cam //Here spade bar and middle mouse button //chaseCam.setToggleRotationTrigger(new MouseButtonTrigger(MouseInput.BUTTON_MIDDLE),new KeyTrigger(KeyInput.KEY_SPACE)); //registering inputs for target's movement registerInput(); }
Example 16
Source File: TestSkeletonControlRefresh.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 4 votes |
@Override public void simpleInitApp() { viewPort.setBackgroundColor(ColorRGBA.White); flyCam.setMoveSpeed(10f); cam.setLocation(new Vector3f(3.8664846f, 6.2704787f, 9.664585f)); cam.setRotation(new Quaternion(-0.054774776f, 0.94064945f, -0.27974048f, -0.18418397f)); makeHudText(); DirectionalLight dl = new DirectionalLight(); dl.setDirection(new Vector3f(-0.1f, -0.7f, -1).normalizeLocal()); dl.setColor(new ColorRGBA(1f, 1f, 1f, 1.0f)); rootNode.addLight(dl); Material m = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); TextureKey k = new TextureKey("Models/Oto/Oto.jpg", false); m.setTexture("ColorMap", assetManager.loadTexture(k)); for (int i = 0; i < SIZE; i++) { for (int j = 0; j < SIZE; j++) { Spatial model = assetManager.loadModel("Models/Oto/Oto.mesh.xml"); //setting a different material model.setMaterial(m.clone()); model.setLocalScale(0.1f); model.setLocalTranslation(i - SIZE / 2, 0, j - SIZE / 2); animComposer = model.getControl(AnimComposer.class); for (AnimClip animClip : animComposer.getAnimClips()) { Action action = animComposer.action(animClip.getName()); animComposer.addAction(animClip.getName(), new BaseAction( Tweens.sequence(action, Tweens.callMethod(animComposer, "removeCurrentAction", AnimComposer.DEFAULT_LAYER)))); } animComposer.setCurrentAction(new ArrayList<>(animComposer.getAnimClips()).get((i + j) % 4).getName()); SkinningControl skinningControl = model.getControl(SkinningControl.class); skinningControl.setHardwareSkinningPreferred(hwSkinningEnable); skinningControls.add(skinningControl); rootNode.attachChild(model); } } rootNode.setShadowMode(RenderQueue.ShadowMode.CastAndReceive); setupFloor(); inputManager.addListener(this, "toggleHWS"); inputManager.addMapping("toggleHWS", new KeyTrigger(KeyInput.KEY_SPACE)); // DirectionalLightShadowRenderer pssm = new DirectionalLightShadowRenderer(assetManager, 1024, 2); // pssm.setLight(dl); // viewPort.addProcessor(pssm); FilterPostProcessor fpp = new FilterPostProcessor(assetManager); DirectionalLightShadowFilter sf = new DirectionalLightShadowFilter(assetManager, 1024, 2); sf.setLight(dl); fpp.addFilter(sf); fpp.addFilter(new SSAOFilter()); viewPort.addProcessor(fpp); }
Example 17
Source File: PhysicsTestHelper.java From MikuMikuStudio with BSD 2-Clause "Simplified" License | 4 votes |
public static void createPhysicsTestWorldSoccer(Node rootNode, AssetManager assetManager, PhysicsSpace space) { AmbientLight light = new AmbientLight(); light.setColor(ColorRGBA.LightGray); rootNode.addLight(light); Material material = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); material.setTexture("ColorMap", assetManager.loadTexture("Interface/Logo/Monkey.jpg")); Box floorBox = new Box(140, 0.25f, 140); Geometry floorGeometry = new Geometry("Floor", floorBox); floorGeometry.setMaterial(material); floorGeometry.setLocalTranslation(0, -0.25f, 0); // Plane plane = new Plane(); // plane.setOriginNormal(new Vector3f(0, 0.25f, 0), Vector3f.UNIT_Y); // floorGeometry.addControl(new RigidBodyControl(new PlaneCollisionShape(plane), 0)); floorGeometry.addControl(new RigidBodyControl(0)); rootNode.attachChild(floorGeometry); space.add(floorGeometry); //movable spheres for (int i = 0; i < 5; i++) { Sphere sphere = new Sphere(16, 16, .5f); Geometry ballGeometry = new Geometry("Soccer ball", sphere); ballGeometry.setMaterial(material); ballGeometry.setLocalTranslation(i, 2, -3); //RigidBodyControl automatically uses Sphere collision shapes when attached to single geometry with sphere mesh ballGeometry.addControl(new RigidBodyControl(.001f)); ballGeometry.getControl(RigidBodyControl.class).setRestitution(1); rootNode.attachChild(ballGeometry); space.add(ballGeometry); } //immovable Box with mesh collision shape Box box = new Box(1, 1, 1); Geometry boxGeometry = new Geometry("Box", box); boxGeometry.setMaterial(material); boxGeometry.setLocalTranslation(4, 1, 2); boxGeometry.addControl(new RigidBodyControl(new MeshCollisionShape(box), 0)); rootNode.attachChild(boxGeometry); space.add(boxGeometry); }
Example 18
Source File: SkyFactory.java From MikuMikuStudio with BSD 2-Clause "Simplified" License | 4 votes |
public static Spatial createSky(AssetManager assetManager, Texture west, Texture east, Texture north, Texture south, Texture up, Texture down, Vector3f normalScale, int sphereRadius) { final Sphere sphereMesh = new Sphere(10, 10, sphereRadius, false, true); Geometry sky = new Geometry("Sky", sphereMesh); sky.setQueueBucket(Bucket.Sky); sky.setCullHint(Spatial.CullHint.Never); sky.setModelBound(new BoundingSphere(Float.POSITIVE_INFINITY, Vector3f.ZERO)); Image westImg = west.getImage(); Image eastImg = east.getImage(); Image northImg = north.getImage(); Image southImg = south.getImage(); Image upImg = up.getImage(); Image downImg = down.getImage(); checkImagesForCubeMap(westImg, eastImg, northImg, southImg, upImg, downImg); Image cubeImage = new Image(westImg.getFormat(), westImg.getWidth(), westImg.getHeight(), null); cubeImage.addData(westImg.getData(0)); cubeImage.addData(eastImg.getData(0)); cubeImage.addData(downImg.getData(0)); cubeImage.addData(upImg.getData(0)); cubeImage.addData(southImg.getData(0)); cubeImage.addData(northImg.getData(0)); if (westImg.getEfficentData() != null){ // also consilidate efficient data ArrayList<Object> efficientData = new ArrayList<Object>(6); efficientData.add(westImg.getEfficentData()); efficientData.add(eastImg.getEfficentData()); efficientData.add(downImg.getEfficentData()); efficientData.add(upImg.getEfficentData()); efficientData.add(southImg.getEfficentData()); efficientData.add(northImg.getEfficentData()); cubeImage.setEfficentData(efficientData); } TextureCubeMap cubeMap = new TextureCubeMap(cubeImage); cubeMap.setAnisotropicFilter(0); cubeMap.setMagFilter(Texture.MagFilter.Bilinear); cubeMap.setMinFilter(Texture.MinFilter.NearestNoMipMaps); cubeMap.setWrap(Texture.WrapMode.EdgeClamp); Material skyMat = new Material(assetManager, "Common/MatDefs/Misc/Sky.j3md"); skyMat.setTexture("Texture", cubeMap); skyMat.setVector3("NormalScale", normalScale); sky.setMaterial(skyMat); return sky; }
Example 19
Source File: TestSoftParticles.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 4 votes |
private void createParticles() { Material material = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md"); material.setTexture("Texture", assetManager.loadTexture("Effects/Explosion/flame.png")); material.setFloat("Softness", 3f); // //Fire ParticleEmitter fire = new ParticleEmitter("Fire", ParticleMesh.Type.Triangle, 30); fire.setMaterial(material); fire.setShape(new EmitterSphereShape(Vector3f.ZERO, 0.1f)); fire.setImagesX(2); fire.setImagesY(2); // 2x2 texture animation fire.setEndColor(new ColorRGBA(1f, 0f, 0f, 1f)); // red fire.setStartColor(new ColorRGBA(1f, 1f, 0f, 0.5f)); // yellow fire.setStartSize(0.6f); fire.setEndSize(0.01f); fire.setGravity(0, -0.3f, 0); fire.setLowLife(0.5f); fire.setHighLife(3f); fire.setLocalTranslation(0, 0.2f, 0); particleNode.attachChild(fire); ParticleEmitter smoke = new ParticleEmitter("Smoke", ParticleMesh.Type.Triangle, 30); smoke.setMaterial(material); smoke.setShape(new EmitterSphereShape(Vector3f.ZERO, 5)); smoke.setImagesX(1); smoke.setImagesY(1); // 2x2 texture animation smoke.setStartColor(new ColorRGBA(0.1f, 0.1f, 0.1f,1f)); // dark gray smoke.setEndColor(new ColorRGBA(0.5f, 0.5f, 0.5f, 0.3f)); // gray smoke.setStartSize(3f); smoke.setEndSize(5f); smoke.setGravity(0, -0.001f, 0); smoke.setLowLife(100f); smoke.setHighLife(100f); smoke.setLocalTranslation(0, 0.1f, 0); smoke.emitAllParticles(); particleNode.attachChild(smoke); }
Example 20
Source File: ActorDrawer.java From OpenRTS with MIT License | 4 votes |
protected Material getParticleMat(String texturePath) { Material m = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md"); m.setTexture("Texture", assetManager.loadTexture("textures/" + texturePath)); return m; }