Текстура карты вокруг сферы OpenGL ES Android

Я пытаюсь сопоставить одну текстуру вокруг сферы, которую я экспортировал из Blender. Модель отлично выглядела в Blender, но когда я использую ее в своем приложении для Android, кажется, что текстура накладывается почти на каждую грань, а не на всю сферу. Есть идеи? Я использую libGDX на Android.

Код установки:

    model = G3dtLoader.loadStillModel(Gdx.files.internal("models/planet.g3dt"), true);

    for(StillSubMesh mesh: model.subMeshes) {
        mesh.mesh.scale(0.1f, 0.1f, 0.1f);
    }

    G3dExporter.export(model, Gdx.files.local("models/planet.g3d"));
    model = G3dLoader.loadStillModel(Gdx.files.local("models/planet.g3d"));

    texture = new Texture(Gdx.files.internal("textures/planet1_pot.png"), true);

    bounds = new BoundingBox();
    model.getBoundingBox(bounds);
    float len = bounds.getDimensions().len();

    cam = new PerspectiveCamera(60, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    cam.position.set(bounds.getCenter().cpy().add(len / 2, len / 2, len / 2));
    cam.lookAt(bounds.getCenter().x, bounds.getCenter().y, bounds.getCenter().z);
    cam.near = 0.1f;
    cam.far = 1000;

    renderer = new ImmediateModeRenderer10();

Код рендеринга:

    @Override
    public void renderScreen(float delta) {
        Gdx.gl.glClearColor(0, 0, 0, 1.0f);
        Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
        Gdx.gl.glEnable(GL10.GL_DEPTH_TEST);

        cam.update();
        cam.apply(Gdx.gl10);

        if(texture != null) {
            Gdx.gl.glActiveTexture(GL10.GL_TEXTURE);
            Gdx.gl.glEnable(GL10.GL_TEXTURE_2D);
            texture.bind();
        }

        model.render();

        if(texture != null) {
            Gdx.gl.glActiveTexture(GL10.GL_TEXTURE);
            Gdx.gl.glDisable(GL10.GL_TEXTURE_2D);
        }
    }

Изменить: вот скриншот, демонстрирующий мою проблему: введите здесь описание изображения


person DRiFTy    schedule 02.12.2012    source источник
comment
Может быть, выложите фото плохого рендера? Насколько я знаю, единственное, что может вызвать такую ​​​​проблему, — это либо плохая модель, либо плохой загрузчик модели. У меня не очень удачный послужной список с экспортом модели блендера (у меня они обычно так или иначе ломаются), так что, может быть, проверьте свою модель, чтобы убедиться, что она экспортировалась правильно? Если это не двоичный файл, возможно, вы также поместите исходный код модели в свой пост.   -  person Tim    schedule 03.12.2012
comment
@Tim Я добавил скриншот своей проблемы. Я как бы думал, что это проблема с экспортом из Blender (я ни в коем случае не эксперт в Blender, ха-ха), так что, возможно, это так. Я мог бы попытаться создать сферу вручную в коде и посмотреть, смогу ли я заставить ее правильно отображаться таким образом.   -  person DRiFTy    schedule 03.12.2012


Ответы (1)


В итоге я разобрался с этой проблемой. Я воссоздал свою модель в Blender по этой ссылке, в которой говорится, что она устарела и не содержит скриншоты, но это помогло мне. В итоге я просто экспортировал свою модель как .obj, и теперь текстура отображается на всю сферу.

person DRiFTy    schedule 04.12.2012