Blender 模型在 libGDX 中渲染不正确

Blender Model is incorrectly rendered in libGDX

我在 libGdx 中渲染模型时遇到问题。
我在搅拌机中创建了一个简单的汽车模型,但是当我在 libGdx 中渲染它时,它渲染不正确。
这是它在搅拌机中的样子(它应该是这样的):

这是 libGdx 中的样子:

如你所见,轮子都指向错误的方向,这没有意义,因为我根本没有转动它们。

模型中只有 1 个对象时有效,但当我添加更多对象(例如轮子)时,就会发生这种情况。

这是我的 create() 方法:

public void create () {
    camera=new PerspectiveCamera(67,800,480);
    camera.position.set(0f, 0f, 20f);
    camera.lookAt(0f, 0f, 0f);
    camera.near=1f;
    camera.far=100f;

    batch=new ModelBatch();
    builder=new ModelBuilder();

    UBJsonReader jsonreader=new UBJsonReader();
    G3dModelLoader modelloader=new G3dModelLoader(jsonreader);
    cubemodel=modelloader.loadModel(Gdx.files.getFileHandle("carmodel.g3db", Files.FileType.Internal));
    cube=new ModelInstance(cubemodel,0,0,0);


    environment=new Environment();
    environment.set(new ColorAttribute(ColorAttribute.AmbientLight,0.65f,0.65f,0.65f,1f));


}

这是我的 render() 方法:

public void render () {
    Gdx.gl.glClearColor(1, 1, 1, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);

    Gdx.gl20.glEnable(GL20.GL_DEPTH_TEST);
    camera.update();
    batch.begin(camera);
    batch.render(cube, environment);
    batch.end();
    camera.rotateAround(new Vector3(0f, 0f, 0f), new Vector3(0f, 1f, 0f), 0.5f);
}

这是我的模型: carmodel.g3db

如果您还需要什么,尽管问,我会post。

提前致谢!

我已经有一段时间没有使用 Blender 了,但这些是我在 LibGDX 中用来使模型方向匹配的设置。这样设置后,如果您的 LibGDX 相机使用与 Blender 相机相同的方向和位置,场景将是相同的。

  1. 正常创建模型。保存 Blender 文件。
  2. 将每个模型围绕其中心围绕 +X 轴旋转 90 度并应用变换。
  3. 导出模型 -Z 向前和 Y 向上。
  4. 不要保存 Blender 文件,因为您可能想进一步更改原始方向的模型。