簡體   English   中英

libgdx android 不顯示模型(黑屏)

[英]libgdx android doesn't show model (black screen)

我是 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。 是代碼錯誤還是模型錯誤? 任何幫助表示贊賞,謝謝。

你好,抱歉我的英語,我對模型沒有太多經驗,但是當你分配

cam.position.set (7f, 7f, 7f);

cam.lookAt (0,0,0);

然后你說

I_instance.transform.setToTranslation (-5F, 0, -5F);

是不是在相機的視野范圍之外不遠? 這只是一個問題,也許這個錯誤就在那里

編輯;

I_instance.transform.setToTranslation(-5f, 0, -5f);

DirectionalLight().set(float r, float g, float b, float dirX, float dirY, float dirZ)

dirz 你不是超出模型范圍,-5F 改 aver 1f 覺得如果你看到燈光沒有到

我認為問題是光線的方向,因為我認為這里有兩點照明告訴模型出現了紋理。在此處輸入圖片說明

可能是模型光線不好,請使用;

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;

我遇到了同樣的問題,我的問題是模型加載得非常大,而且相機在模型中。 因此,嘗試縮小模型,或將相機向后移動很多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM