【发布时间】:2014-10-17 13:36:20
【问题描述】:
我是 LibGDX 的新手。 我尝试应用我在网上阅读的一些教程在 libGDX 中加载模型。 问题是当我的 Galaxy Nexus (Android 4.3) 上加载应用程序时出现黑屏,根据 LogCat 没有错误。 代码是这样的:
@Override
public void create() {
modelBatch = new ModelBatch();
environment = new Environment();
environment.set(new ColorAttribute(ColorAttribute.AmbientLight, 0.4f, 0.4f, 0.4f, 1f));
environment.add(new DirectionalLight().set(0.8f, 0.8f, 0.8f, -1f, -0.8f, -0.2f));
cam = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
cam.position.set(7f, 7f, 7f);
cam.lookAt(0,0,0);
cam.near = 1f;
cam.far = 300f;
cam.update();
assets = new AssetManager();
assets.load("data/skeleton.g3db", Model.class);
loading = true;
camController = new CameraInputController(cam);
Gdx.input.setInputProcessor(camController);
}
private void doneLoading() {
Model I_model = assets.get("data/skeleton.g3db", Model.class);
ModelInstance I_instance = new ModelInstance(I_model);
I_instance.transform.setToTranslation(-5f, 0, -5f);
instances.add(I_instance);
loading = false;
}
@Override
public void render() {
if (loading && assets.update())
doneLoading();
camController.update();
Gdx.gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
modelBatch.begin(cam);
modelBatch.render(instances, environment);
modelBatch.end();
}
@Override
public void dispose() {
modelBatch.dispose();
model.dispose();
assets.dispose();
}
@Override
public void resize(int width, int height) {
}
@Override
public void pause() {
}
@Override
public void resume() {
}
}
“骨架”模型在线获取为 .fbx 并使用 fbx-conv 转换为 .g3db。 是代码错误还是模型错误? 任何帮助表示赞赏,谢谢。
【问题讨论】:
-
有没有可能你是相机截头体之外的模型?也许将模型实例的转换设置为身份以检查这是否是问题所在。还可以尝试将透明颜色设置为黑色以外的其他颜色,以查看是否可以看到物体的轮廓,在这种情况下存在照明问题。
-
@Tenfour04 我在 render() 中添加了这一行: Gdx.gl.glClearColor(0, 0, 0.2f, 1);现在我看到的都是蓝色而不是黑色!
-
更改模型我现在可以看到它的黑色“结构”。可能是光的问题?