2013-07-16 1 views
0

3D 객체를 그리기는하지만 올바르게 그릴 수 없습니다. 원본 3D 파일은 대각선으로 그려지지 않지만 드로잉을 할 때 대각선을 보여줍니다. 왜 대각선으로 그리는 지 도와주세요. http://i.stack.imgur.com/Q4plC.pngopenGl에서 객체가 제대로 그려지지 않습니다

코드 사전에

public void draw(GL10 gl) { 
    //gl.glColor4f(0.0f, 1.0f, 0.0f, 0.5f); 
    gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); 

    gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer); 
    gl.glDrawArrays(3, 0, v.size()/3); 
    gl.glDisableClientState(GL10.GL_VERTEX_ARRAY); 
    gl.glDisable(GL10.GL_CULL_FACE); 
} 

public void onSurfaceCreated(GL10 gl, EGLConfig config) { 
    model.loadGLTexture(gl, context); 
    gl.glEnable(GL10.GL_TEXTURE_2D); 
    gl.glClearColor(1.0f, 0.0f, 1.0f, 1.0f);  
    gl.glClearDepthf(1.0f); 
    gl.glEnable(GL10.GL_DEPTH_TEST);    
    gl.glDepthFunc(GL10.GL_LEQUAL);   
    gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST); 
    gl.glShadeModel(GL10.GL_SMOOTH);    
} 

/** 
* Here we do our drawing 
*/ 
public void onDrawFrame(GL10 gl) { 
    //Clear Screen And Depth Buffer 
    gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f); 
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);  
    gl.glLoadIdentity();    
    gl.glTranslatef(0.0f, 0.0f, 0); //Move down 1.2 Unit And Into The Screen 6.0 
    gl.glRotatef(xrot, 1.0f, 0.0f, 0.0f); //X 
    gl.glRotatef(yrot, 0.0f, 1.0f, 0.0f); //Y 
    model.draw(gl);      //Draw the square 

    xrot += xspeed; 
    yrot += yspeed; 

} 

/** 
* If the surface changes, reset the view 
*/ 
public void onSurfaceChanged(GL10 gl, int width, int height) { 
    if(height == 0) {      //Prevent A Divide By Zero By 
     height = 1;       //Making Height Equal One 
    } 

    gl.glViewport(0, 0, width, height);  //Reset The Current Viewport 
    gl.glMatrixMode(GL10.GL_PROJECTION); //Select The Projection Matrix 
    gl.glLoadIdentity();     //Reset The Projection Matrix 

    //Calculate The Aspect Ratio Of The Window 
    GLU.gluPerspective(gl, 45.0f, width/height, 0.1f, 500.0f); 

    gl.glMatrixMode(GL10.GL_MODELVIEW);  //Select The Modelview Matrix 
    gl.glLoadIdentity();     //Reset The Modelview Matrix 
} 

감사 :

은이 링크를 참조하십시오.

답변

0

vertexBuffer에서 정점의 정확한 순서를 확인하십시오. 주문이 직사각형의 대각선 방향으로 건너 뛰면 대각선이 그려집니다.

+0

100 %를 얻을 수 없습니다. 문제가되는 곳에서 코드 편집을 도와주세요 .. – user2583144

+0

코드에 없습니다. 버텍스 데이터를 게시하십시오. – Tez

+0

프로젝트의 자산 폴더에 전체 코드 및 obj 파일을 업로드했습니다. 여기에서 프로젝트를 찾으십시오. https://www.dropbox.com/s/ejhlmgb86b05wv2/objLoader.rar .. 올바른 오브젝트를 그리지 못하게 도와주세요. 대각선이 나타나고 물체 안의 뒤틀림이 많은 왜곡. 나는 지난 4 일 이래로 문제가 어디인지를 인식 할 수 없었다. 도움의 손을 얻었다. – user2583144

관련 문제