我是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() {
}
}
模型“ skeleton”在线以.fbx格式获取,并使用fbx-conv在.g3db中转换。是代码或模型错误?感谢您的任何帮助,谢谢。
我认为问题在于光的方向,因为我认为这里出现的两点照明表明模型具有纹理。“ >>
可能是模型光线不好,采用;
PointLight设置(浮点数r,浮点数g,浮点数b,浮点数x,浮点数y,浮点数z,浮点强度)
float intensity = 1f; environment.add(new PointLight().set(0.8f, 0.8f, 0.8f, -1f, -0.8f, -0.8f, intensity));
和测试中的托盘更换变量的完整性,例如100;
您好,对不起,我的英语,我对模型没有太多经验,但是当您分配时
我有同样的问题,我的问题是模型加载得很大,而相机在模型中。因此,请尝试按比例缩小模型或将摄像机移回很多位置。