【问题标题】:Blender Model is incorrectly rendered in libGDXBlender 模型在 libGDX 中被错误渲染
【发布时间】:2016-10-12 19:54:52
【问题描述】:

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

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

提前致谢!

【问题讨论】:

  • 你相机的远近比是10000!将其减少到不太容易出错的值,例如 100。
  • @Xoppa 已经尝试过了,但没有成功。我用了近 10 和远 1000

标签: java libgdx blender 3d-model


【解决方案1】:

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

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

【讨论】:

  • 如果我的问题似乎含糊不清,我深表歉意,模型的方向不是问题。模型方向很好。问题是模型渲染不正确。
  • 好的,那么看起来你的模型的法线是倒置的。
  • 哦,你能告诉我如何再次反转它们以使它们正常吗?非常感谢,我想知道问题出在哪里了一天多。
  • 在 Blender 中,您可以选择所有面并在左侧菜单中找到按钮来翻转或反转法线。 (不记得他们叫什么了。)有一些选项可以查看法线,这样您就可以看到它们在 Blender 中指向的方向。如果它们指向内部,照明将不正确。
  • 成功了!非常感谢你!我已经为此苦苦挣扎了很长时间。
猜你喜欢
  • 2020-11-17
  • 2013-05-01
  • 2015-08-03
  • 2012-12-11
  • 1970-01-01
  • 2015-09-05
  • 2019-03-01
  • 2013-12-08
  • 2018-07-28
相关资源
最近更新 更多