1 2/* 3 * Android 2.2+ SimpleTextured test. 4 * 5 * created: Mon Nov 8 00:08:22 EST 2010 6 */ 7 8package jme3test.android; 9 10 11import com.jme3.app.SimpleApplication; 12import com.jme3.asset.TextureKey; 13import com.jme3.light.PointLight; 14import com.jme3.material.Material; 15import com.jme3.math.ColorRGBA; 16import com.jme3.math.Vector3f; 17import com.jme3.scene.Geometry; 18import com.jme3.scene.Mesh; 19import com.jme3.scene.Node; 20import com.jme3.scene.shape.Box; 21import com.jme3.scene.shape.Sphere; 22import com.jme3.texture.Texture; 23import com.jme3.util.TangentBinormalGenerator; 24 25 26public class SimpleTexturedTest extends SimpleApplication { 27 28 private static final java.util.logging.Logger logger = java.util.logging.Logger.getLogger(SimpleTexturedTest.class.getName()); 29 30 31 private Node spheresContainer = new Node("spheres-container"); 32 33 34 private boolean lightingEnabled = true; 35 private boolean texturedEnabled = true; 36 private boolean spheres = true; 37 38 @Override 39 public void simpleInitApp() { 40 41 //flyCam.setRotationSpeed(0.01f); 42 43 44 Mesh shapeSphere = null; 45 Mesh shapeBox = null; 46 47 48 shapeSphere = new Sphere(16, 16, .5f); 49 shapeBox = new Box(Vector3f.ZERO, 0.3f, 0.3f, 0.3f); 50 51 52 // ModelConverter.optimize(geom); 53 54 Texture texture = assetManager.loadTexture(new TextureKey("Interface/Logo/Monkey.jpg")); 55 Texture textureMonkey = assetManager.loadTexture(new TextureKey("Interface/Logo/Monkey.jpg")); 56 57 Material material = null; 58 Material materialMonkey = null; 59 60 if (texturedEnabled) { 61 if (lightingEnabled) { 62 material = new Material(assetManager, "Common/MatDefs/Light/Lighting.j3md"); 63 material.setBoolean("VertexLighting", true); 64 material.setFloat("Shininess", 127); 65 material.setBoolean("LowQuality", true); 66 material.setTexture("DiffuseMap", texture); 67 68 materialMonkey = new Material(assetManager, "Common/MatDefs/Light/Lighting.j3md"); 69 materialMonkey.setBoolean("VertexLighting", true); 70 materialMonkey.setFloat("Shininess", 127); 71 materialMonkey.setBoolean("LowQuality", true); 72 materialMonkey.setTexture("DiffuseMap", textureMonkey); 73 74 } else { 75 material = new Material(assetManager, "Common/MatDefs/Misc/SimpleTextured.j3md"); 76 material.setTexture("ColorMap", texture); 77 78 materialMonkey = new Material(assetManager, "Common/MatDefs/Misc/SimpleTextured.j3md"); 79 materialMonkey.setTexture("ColorMap", textureMonkey); 80 } 81 } else { 82 material = new Material(assetManager, "Common/MatDefs/Misc/SolidColor.j3md"); 83 material.setColor("Color", ColorRGBA.Red); 84 materialMonkey = new Material(assetManager, "Common/MatDefs/Misc/SolidColor.j3md"); 85 materialMonkey.setColor("Color", ColorRGBA.Red); 86 } 87 88 TangentBinormalGenerator.generate(shapeSphere); 89 TangentBinormalGenerator.generate(shapeBox); 90 91 int iFlipper = 0; 92 for (int y = -1; y < 2; y++) { 93 for (int x = -1; x < 2; x++){ 94 Geometry geomClone = null; 95 96 //iFlipper++; 97 if (iFlipper % 2 == 0) 98 { 99 geomClone = new Geometry("geometry-" + y + "-" + x, shapeBox); 100 } 101 else 102 { 103 geomClone = new Geometry("geometry-" + y + "-" + x, shapeSphere); 104 } 105 if (iFlipper % 3 == 0) 106 { 107 geomClone.setMaterial(materialMonkey); 108 } 109 else 110 { 111 geomClone.setMaterial(material); 112 } 113 geomClone.setLocalTranslation(x, y, 0); 114 115// Transform t = geom.getLocalTransform().clone(); 116// Transform t2 = geomClone.getLocalTransform().clone(); 117// t.combineWithParent(t2); 118// geomClone.setLocalTransform(t); 119 120 spheresContainer.attachChild(geomClone); 121 } 122 } 123 124 spheresContainer.setLocalTranslation(new Vector3f(0, 0, -4f)); 125 spheresContainer.setLocalScale(2.0f); 126 127 rootNode.attachChild(spheresContainer); 128 129 PointLight pointLight = new PointLight(); 130 131 pointLight.setColor(new ColorRGBA(0.7f, 0.7f, 1.0f, 1.0f)); 132 133 pointLight.setPosition(new Vector3f(0f, 0f, 0f)); 134 pointLight.setRadius(8); 135 136 rootNode.addLight(pointLight); 137 } 138 139 @Override 140 public void simpleUpdate(float tpf) { 141 142 // secondCounter has been removed from SimpleApplication 143 //if (secondCounter == 0) 144 // logger.info("Frames per second: " + timer.getFrameRate()); 145 146 spheresContainer.rotate(0.2f * tpf, 0.4f * tpf, 0.8f * tpf); 147 } 148 149} 150 151