2012-09-16 16 views
1

我剛剛開始使用jME,我在攪拌機中創建了一個3d模型,並將其導出到.obj並將其導入到我的jME應用程序中。環境光線可以正常工作,但是我使用的直射光線只會點亮少數臉部,而不是照亮物體的一個面部,而是會照亮整個物體,而不管物體的方向如何(上臂) :只有環境光在jME中可靠工作

enter image description here

的字符的其餘部分保持由所述定向光熄滅。 這是源代碼:

public class Hello extends SimpleApplication { 

@Override 
public void simpleInitApp() { 
    Spatial character = assetManager.loadModel("/character.obj"); 
    Material mat = new Material(assetManager, "Common/MatDefs/Light/Lighting.j3md"); 
    character.setMaterial(mat); 
    character.scale(0.5f, 0.5f, 0.5f); 
    rootNode.attachChild(character); 

    AmbientLight al = new AmbientLight(); 
    al.setColor(ColorRGBA.White.mult(1.3f)); 
    rootNode.addLight(al); 

    DirectionalLight sun = new DirectionalLight(); 
    sun.setColor(ColorRGBA.White); 
    sun.setDirection(new Vector3f(0,1,0).normalizeLocal()); 
    rootNode.addLight(sun); 
} 

/** 
* @param args 
*/ 
public static void main(String[] args) { 
    Hello app = new Hello(); 
    app.start(); 
} 

} 

是什麼問題?

回答

2

我想說的東西是錯誤的,你用你的角色模型材料

嘗試增加:

TangentBinormalGenerator.generate(character.getMesh(), true); 
mat.setBoolean("m_UseMaterialColors", true); 
mat.setColor("m_Ambient", ColorRGBA.Orange); 
mat.setColor("m_Diffuse", ColorRGBA.Orange); 
mat.setColor("m_Specular", ColorRGBA.White); 
mat.setFloat("m_Shininess", 12); 

從這裏摘自:http://wiki.jmonkeyengine.org/doku.php/jme3:advanced:light_and_shadow