gpt4 book ai didi

java - 只有环境光才能在 jME 中可靠工作

转载 作者:行者123 更新时间:2023-11-30 04:40:18 24 4
gpt4 key购买 nike

我刚刚开始使用 jME,并在 Blender 中创建了一个 3D 模型,并将其导出到 .obj 并将其导入到我的 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();
}

}

问题是什么?

最佳答案

我想说你用于角色模型的 Material 有问题

尝试添加:

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

关于java - 只有环境光才能在 jME 中可靠工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12450049/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com