diff options
Diffstat (limited to 'objloader.c')
-rw-r--r-- | objloader.c | 52 |
1 files changed, 32 insertions, 20 deletions
diff --git a/objloader.c b/objloader.c index 688c643..7521822 100644 --- a/objloader.c +++ b/objloader.c @@ -30,7 +30,7 @@ static void resize(int w, int h) glLoadIdentity(); /* produce the perspective projection */ - gluPerspective(60.0f, fAspect, 1.0, 40.0); + gluPerspective(45.0f, fAspect, 1.0, 300.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); @@ -46,9 +46,9 @@ static void setup_opengl() GLfloat sourceLight[] = { 0.75f, 0.75f, 0.75f, 1.0f }; GLfloat lightPos[] = { -10.f, 5.0f, 5.0f, 1.0f }; - glEnable(GL_DEPTH_TEST); /* hidden surface removal */ - glFrontFace(GL_CCW); /* counter clock-wise polygons face out */ - glEnable(GL_CULL_FACE); /* do not calculate inside of a pyramid */ + glEnable(GL_DEPTH_TEST);/* hidden surface removal */ + glFrontFace(GL_CCW);/* counter clock-wise polygons face out */ + glEnable(GL_CULL_FACE); /* do not calculate inside of a pyramid */ /* enable lighting */ glEnable(GL_LIGHTING); @@ -79,7 +79,7 @@ static void setup_opengl() glPixelStorei(GL_UNPACK_ALIGNMENT, 1); pBytes = gltLoadTGA("stone.tga", &iWidth, &iHeight, &iComponents, &eFormat); if (!pBytes) - fprintf(stderr, "gltLoadTGA: failed to load texture!\n"); + fprintf(stderr, "gltLoadTGA: failed to load texture!\n"); /* load texture image */ glTexImage2D(GL_TEXTURE_2D, 0, iComponents, iWidth, iHeight, 0, eFormat, @@ -142,27 +142,39 @@ void render(ObjModel *model) /* clear the window with current clearing color */ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); draw_ground(); - - int i; +#if 0 glPushMatrix(); - glTranslatef(0.0f, -2.0f, -2.0f); - glScalef(0.2f, 0.2f, 0.2f); - glBegin(GL_QUADS); - + glTranslatef(0.0f, 0.0f, -50.0f); + glScalef(0.2f, 0.2f, 0.2f); + glColor3f(1.0f, 0.0f, 0.0f); + glBegin(GL_QUADS); + glVertex3f(25.0f, 0.0f, 0.0f); + glVertex3f(25.0f, 50.0f, 0.0f); + glVertex3f(-25.0f, 50.0f, 0.0f); + glVertex3f(-25.0f, 0.0f, 0.0f); + glEnd(); +#endif + + glPushMatrix(); + glScalef(0.1f, 0.1f, 0.1f); + glTranslatef(0.0f, 0.0f, -150.0f); + glColor3f(1.0f, 0.0f, 0.0f); + glBegin(GL_QUADS); + int i; for (i = 0; i < model->nFace; i++) { - glNormal3f(model->NormalArray[model->FaceArray[i].Normal[0]].x, model->NormalArray[model->FaceArray[i].Normal[0]].y, model->NormalArray[model->FaceArray[i].Normal[0]].z ); - glVertex3f(model->VertexArray[model->FaceArray[i].Vertex[0]].x, model->VertexArray[model->FaceArray[i].Vertex[0]].y, model->VertexArray[model->FaceArray[i].Vertex[0]].z ); + glNormal3f(model->NormalArray[model->FaceArray[i].Normal[0] - 1].x, model->NormalArray[model->FaceArray[i].Normal[0] - 1].y, model->NormalArray[model->FaceArray[i].Normal[0] - 1].z ); + glVertex3f(model->VertexArray[model->FaceArray[i].Vertex[0] - 1].x, model->VertexArray[model->FaceArray[i].Vertex[0] - 1].y, model->VertexArray[model->FaceArray[i].Vertex[0] - 1].z ); - glNormal3f(model->NormalArray[model->FaceArray[i].Normal[1]].x, model->NormalArray[model->FaceArray[i].Normal[1]].y, model->NormalArray[model->FaceArray[i].Normal[1]].z ); - glVertex3f(model->VertexArray[model->FaceArray[i].Vertex[1]].x, model->VertexArray[model->FaceArray[i].Vertex[1]].y, model->VertexArray[model->FaceArray[i].Vertex[1]].z ); + glNormal3f(model->NormalArray[model->FaceArray[i].Normal[1] - 1].x, model->NormalArray[model->FaceArray[i].Normal[1] - 1].y, model->NormalArray[model->FaceArray[i].Normal[1] - 1].z ); + glVertex3f(model->VertexArray[model->FaceArray[i].Vertex[1] - 1].x, model->VertexArray[model->FaceArray[i].Vertex[1] - 1].y, model->VertexArray[model->FaceArray[i].Vertex[1] - 1].z ); - glNormal3f(model->NormalArray[model->FaceArray[i].Normal[2]].x, model->NormalArray[model->FaceArray[i].Normal[2]].y, model->NormalArray[model->FaceArray[i].Normal[2]].z ); - glVertex3f(model->VertexArray[model->FaceArray[i].Vertex[2]].x, model->VertexArray[model->FaceArray[i].Vertex[2]].y, model->VertexArray[model->FaceArray[i].Vertex[2]].z ); + glNormal3f(model->NormalArray[model->FaceArray[i].Normal[2] - 1].x, model->NormalArray[model->FaceArray[i].Normal[2] - 1].y, model->NormalArray[model->FaceArray[i].Normal[2] - 1].z ); + glVertex3f(model->VertexArray[model->FaceArray[i].Vertex[2] - 1].x, model->VertexArray[model->FaceArray[i].Vertex[2] - 1].y, model->VertexArray[model->FaceArray[i].Vertex[2] - 1].z ); - glNormal3f(model->NormalArray[model->FaceArray[i].Normal[3]].x, model->NormalArray[model->FaceArray[i].Normal[3]].y, model->NormalArray[model->FaceArray[i].Normal[3]].z ); - glVertex3f(model->VertexArray[model->FaceArray[i].Vertex[3]].x, model->VertexArray[model->FaceArray[i].Vertex[3]].y, model->VertexArray[model->FaceArray[i].Vertex[3]].z ); + glNormal3f(model->NormalArray[model->FaceArray[i].Normal[3] - 1].x, model->NormalArray[model->FaceArray[i].Normal[3] - 1].y, model->NormalArray[model->FaceArray[i].Normal[3] - 1].z ); + glVertex3f(model->VertexArray[model->FaceArray[i].Vertex[3] - 1].x, model->VertexArray[model->FaceArray[i].Vertex[3] - 1].y, model->VertexArray[model->FaceArray[i].Vertex[3] - 1].z ); } glEnd(); @@ -219,7 +231,7 @@ int main(void) ObjModel *model = ObjLoadModel(memory, bytes); printf("Object Model has: %d faces!\n", model->nFace); - + /* main loop */ while (program_running) { |