2012-09-16 6 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