在libGDX中错误地呈现Blender Model

时间:2016-06-12 08:17:02

标签: java libgdx blender 3d-model

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

这是它在libGdx中的样子:

enter image description here

正如你所看到的,车轮都指向了错误的方向,因为我根本没有转动它们。

当模型中只有一个对象但是当我添加更多对象(如轮子)时,它会起作用。

这是我的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

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

提前致谢!

1 个答案:

答案 0 :(得分:1)

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

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