අද අපි බලමු කොහොමද texture එකක් apply කර ගන්නේ කියල. මුලින්ම වෙනදා වගේ අළුත් class එකක් හදා ගන්න. ඊට පස්සේ මේ පහළ තියෙන code එක copy paste කරන්න. මේ code එකින් කරන්නේ box එකක් හදලා එකට material එකක් දාගෙන ඊට පස්සේ texture එකක් apply කරන එක.
package hello3D.test;
import com.jme3.app.SimpleApplication;
import com.jme3.light.DirectionalLight;
import com.jme3.material.Material;
import com.jme3.util.TangentBinormalGenerator;
import com.jme3.scene.Geometry;
import com.jme3.scene.shape.Box;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f;
public class HelloMaterial extends SimpleApplication {
public static void main(String[] args) {
HelloMaterial app = new HelloMaterial();
app.start();
}
@Override
public void simpleInitApp() {
Box cubeMesh = new Box(1f, 1f, 1f);
Geometry cube1Geo = new Geometry("Shiny rock", cubeMesh);
TangentBinormalGenerator.generate(cubeMesh); // for lighting effect
Material cubeMat = new Material(assetManager,
"Common/MatDefs/Light/Lighting.j3md");
cubeMat.setTexture("DiffuseMap",
assetManager.loadTexture("Textures/Terrain/Pond/Pond.jpg"));
cubeMat.setTexture("NormalMap",
assetManager.loadTexture("Textures/Terrain/Pond/Pond_normal.png"));
cubeMat.setBoolean("UseMaterialColors", true);
cubeMat.setColor("Diffuse", ColorRGBA.White);
cubeMat.setColor("Specular", ColorRGBA.White);
cubeMat.setFloat("Shininess", 64f); // [0,128]
cube1Geo.setMaterial(cubeMat);
cube1Geo.setLocalTranslation(0, 0, 2); // Move it a bit
cube1Geo.rotate(1.6f, 5f, 2f); // Rotate it a bit
rootNode.attachChild(cube1Geo);
/**
* Must add a light to make the lit object visible!
*/
DirectionalLight sun = new DirectionalLight();
sun.setDirection(new Vector3f(1, 0, -2).normalizeLocal());
sun.setColor(ColorRGBA.White);
rootNode.addLight(sun);
}
}
මෙන්න මේ ආකාරයට තමයි cube එක දිස් වෙන්නේ.
මම හිතනවා ඔයාලා දෙයක් ඉගෙන ගන්න ඇති කියල. තව පොස්ට් එකකින් හම්බ වෙමු.
-Hasini Senanayaka-
0 comments:
Post a Comment