android - 围绕 Sphere OpenGL ES Android 映射纹理

标签 android opengl-es libgdx blender texture-mapping

我正在尝试围绕从 Blender 导出的球体映射单个纹理。该模型在 Blender 中看起来很棒,但当我在我的 Android 应用程序中使用它时,纹理似乎被映射到几乎每个面,而不是整个球体。有任何想法吗?我在 Android 上使用 libGDX。

设置代码:

    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);
        }
    }

编辑: 这是演示我的问题的屏幕截图: enter image description here

最佳答案

我最终解决了这个问题。我按照 this link 在 Blender 中重新创建了我的模型它说它已被弃用并且缺少屏幕截图,但它帮助了我。我最终只是将我的模型导出为 .obj,纹理现在映射到整个球体。

关于android - 围绕 Sphere OpenGL ES Android 映射纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13670565/

相关文章:

java - 方向总是导致纵向(libgdx 中的运动控制)

java - 无法使用散列密码登录 Android 应用程序

java - 无法弄清楚这个 Obj 文件解析器有什么问题

android - 使用位图时android中的图像尺寸不正确

ios - 调整 GLKView 的大小

android - OpenGL ES单像素绘图android

java - 调整大小后如何使用 LWJGL3 将 LibGDX 中的窗口居中

java - 如何更改 libgdx 标签中的背景颜色?

android - 图像捕获延迟 - React Native Camera/Expo Camera

android - 为什么 eclipse 默认使委托(delegate)方法受到保护?