将obj文件导入openGL代码

时间:2016-04-05 20:55:54

标签: c opengl blender

我对openGL和3D绘图比较陌生。 我在Blender中画了一个小人物并将其椎体输出到.obj文件中,这样我就可以使用我的C代码渲染那个人了。

这是我画的人: enter image description here

问题

当我在我的代码中导入它时,我再也看不到一个人,只是一个可怕的丑陋的混乱:

enter image description here

我的想法

在我测试我的软件时,我画了一个立方体并在我的代码中导入了这些顶点。我看到我只有6个v顶点。这给了我一个部分立方体(因此一边没有关闭)。

enter image description here

所以也许它与此有关。

我该怎么做才能解决这个问题?我在哪里弄错了?是否与投影机或从搅拌机出口有关?

这是我的C代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <GL/glut.h>
#include "myVertices.h"



float xCamera = 3.0;
float yCamera = 3.0;
float zCamera = 0.0;

float barelRollCamera = 0.0;

void init(void)
{
    glClearColor(1.0, 1.0, 1.0, 1.0);  
    glEnable(GL_DEPTH_TEST);
}

void drawVertex(GLfloat vertex[][3], int numberVertex, int shape)
{
    int i;

    glPushMatrix();
    switch(shape)
    {
        case 0: glBegin(GL_LINES); break;
        case 1: glBegin(GL_POLYGON); break;
        default: break;
    }

    for(i=0;i<numberVertex;i++)
    {
        glVertex3fv(vertex[i]);
    }

    glEnd();
    glPopMatrix();

}


void drawScene(void)
{

    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    gluLookAt(xCamera,yCamera,3.0, 0.0,0.0,0.0, 0.0,1.0,barelRollCamera);
    glColor3f(0.0, 0.0, 0.0);

    //draws axis
    drawVertex(assen,6,0);

     //draws person I drew in blender using the vertices in my header file
    drawVertex(person,1038,1);

    glFlush();
}

void herschaal(){

    glViewport(0,0,500,500);
    glLoadIdentity();
    glMatrixMode(GL_PROJECTION);
    glOrtho(-6.500, 6.500, -6.500, 6.500, -6.00, 12.00);

}

int main( int argc, char * argv[])
{

    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH );
    glutInitWindowPosition(50, 100);
    glutInitWindowSize(1000, 1000);
    glutCreateWindow("test");
    glutReshapeFunc(herschaal);
    init();
    glutDisplayFunc(drawScene);
    glutMainLoop();

    return 0;
}

来自搅拌机的原始出口:http://hastebin.com/owubizotuv.hs

我使用v-vertices的文件,又名myVertices.h:http://hastebin.com/lirajuhiqe.avrasm

0 个答案:

没有答案