JME - Licht hat keinen Effekt

System.exit(0)

Aktives Mitglied
Hallo,

ich schaffe es nicht, Licht in JME zu installieren.
Wieso sehe ich keinen Effekt auf der Oberfläche meiner Kugel?

Gruß

System.exit(0)

Code:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package lighttest;

import com.jme3.app.SimpleApplication;
import com.jme3.light.AmbientLight;
import com.jme3.light.DirectionalLight;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f;
import com.jme3.scene.Geometry;
import com.jme3.scene.LightNode;
import com.jme3.scene.shape.Box;
import com.jme3.scene.shape.Sphere;

/**
 *
 * @author Markus.Rausch
 */
public class LightTest extends SimpleApplication {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
      LightTest lt = new LightTest();
      lt.start();
    }

    @Override
    public void simpleInitApp() {
        Sphere b = new Sphere(20,20,2);
        Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
        
        mat.setColor("Color", ColorRGBA.Blue);
        Geometry g = new Geometry("box", b);
        g.setMaterial(mat);
        rootNode.attachChild(g);
        rootNode.rotate(.5f,.5f,.5f);
        rootNode.setLocalTranslation(-2, -2, -2);
      
        setUpLight();
    }
    
   private void setUpLight()
        {
            
        System.out.println("Light!");
        AmbientLight al = new AmbientLight();
        al.setColor(ColorRGBA.White.mult(1.3f));
        rootNode.addLight(al);
 
        DirectionalLight dl = new DirectionalLight();
        dl.setColor(ColorRGBA.White); 
        dl.setDirection(new Vector3f(-2, -2f, -2f).normalizeLocal());
        rootNode.addLight(dl);

    }
}
 
Weil deine Kugel "unshaded" als Material verwendet. Du musst ein Material wählen, welches Beleuchtung unterstützt. Die Tutorials der jME sind dabei hilfreich.
Um die Verwirrung vllt etwas zu lichten: Ein Objekt wird so gerendert, wie ein Shaderprogramm es halt berechnet. Diese Shaderprogramme werden in der jME per Materialien zugewiesen. Unshaded macht dein Objekt einfarbig.
Btw: Solche fragen vielleicht auch besser ins jME Forum. Die war zwar einfach zu beantworten, aber bei schwereren Fragen wirst du hier weniger Antworten bekommen.
 

Zurück
Oben