0

我在 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

如果您需要其他任何内容,请询问,我会发布。

提前致谢!

4

1 回答 1

1

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

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