Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 网格渲染问题libgdx_Android_Opengl Es_Libgdx - Fatal编程技术网

Android 网格渲染问题libgdx

Android 网格渲染问题libgdx,android,opengl-es,libgdx,Android,Opengl Es,Libgdx,我有一个非常简单的程序,加载波前obj文件,旋转并显示它。 问题是程序渲染时会出现一些问题(如缺少三角形)。当我试图用NeHe教程中的顶点缓冲区渲染金字塔时,我遇到了类似的问题。所以我不知道是什么导致了这种渲染问题。你能帮我吗 package com.jam.libgdx3DTest; import com.badlogic.gdx.Game; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.*; import com

我有一个非常简单的程序,加载波前obj文件,旋转并显示它。 问题是程序渲染时会出现一些问题(如缺少三角形)。当我试图用NeHe教程中的顶点缓冲区渲染金字塔时,我遇到了类似的问题。所以我不知道是什么导致了这种渲染问题。你能帮我吗

package com.jam.libgdx3DTest;

import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.*;
import com.badlogic.gdx.graphics.g3d.loaders.obj.ObjLoader;

import java.io.InputStream;

public class Libgdx3DTest extends Game {

    private Mesh shuttleMesh;
    private Camera camera;
    private float rotateAngle;

    public void create() {
        if (shuttleMesh == null) {
            InputStream in = Gdx.files.internal("shuttle.obj").read();
            shuttleMesh = ObjLoader.loadObj(in, false);
        }
    }

    public void render() {
        Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);

        Gdx.gl10.glMatrixMode(GL11.GL_MODELVIEW_MATRIX);

        Gdx.gl10.glLoadIdentity();

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

        rotateAngle += 0.5f;
        Gdx.gl10.glRotatef(rotateAngle, 0f, 1f, 0f);
        Gdx.gl10.glRotatef(-90f, 1f, 0f, 0f);

        shuttleMesh.render(GL11.GL_TRIANGLES);
    }

    public void resize(int width, int height) {
        float aspectRatio = (float) width / (float) height;
        camera = new PerspectiveCamera(67, 2f * aspectRatio, 2f);
        camera.translate(0f, 0f, 12f);
    }

    public void pause(){
    }

    public void resume(){
    }

    public void dispose() {
    }
}

我认为您可能有缠绕问题,即模型的缠绕与OpenGL不同


OpenGL缠绕默认为逆时针方向,尽管可以使用glFrontFace(GL_CW)进行更改

我想这是你的问题

shuttleMesh.render(GL11.GL_TRIANGLES) 
应该是

shuttleMesh.render(GL11.GL_TRIANGL_FAN);

对ma来说,看看这个答案是否有帮助:谢谢,伙计,我想也许这就是问题所在。我将尝试“三角化”模型。