I have a very simple program, that loads an wavefront obj file, rotate and displays it.
The problem is that the program renders it with some issues (like missing triangles). I had a similar problem when I tried to render a Pyramid with a vertex buffer taken from NeHe's tutorial. So I don't know what cause this rendering issues. Can you help me? 
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() {
    }
}
                I think you might be having winding issues i.e. the model has different winding than OpenGL.
OpenGL Winding is counterclockwise by default though this can be changed with glFrontFace(GL_CW);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With