Tuesday, November 24, 2020

JMonkey Engine - How to apply texture

අද අපි බලමු කොහොමද  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