首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么实现OBJ文件导入到OPENGL中(2)

2012-09-07 
如何实现OBJ文件导入到OPENGL中(2)这是接上个帖子的代码,谢谢~/****************************************

如何实现OBJ文件导入到OPENGL中(2)
这是接上个帖子的代码,谢谢~
/***************************************************************************
 * Program code
 ***************************************************************************/
 
Model_OBJ obj;
float g_rotation;
glutWindow win;
 
void display() 
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
gluLookAt( 0,1,4, 0,0,0, 0,1,0);
glPushMatrix();
glRotatef(g_rotation,0,1,0);
glRotatef(90,0,1,0);
g_rotation++;
obj.Draw();
glPopMatrix();
glutSwapBuffers();
}
 
 
void initialize () 

  glMatrixMode(GL_PROJECTION);
glViewport(0, 0, win.width, win.height);
GLfloat aspect = (GLfloat) win.width / win.height;
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
gluPerspective(win.field_of_view_angle, aspect, win.z_near, win.z_far);
  glMatrixMode(GL_MODELVIEW);
  glShadeModel( GL_SMOOTH );
  glClearColor( 0.0f, 0.1f, 0.0f, 0.5f );
  glClearDepth( 1.0f );
  glEnable( GL_DEPTH_TEST );
  glDepthFunc( GL_LEQUAL );
  glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST );
 
  GLfloat amb_light[] = { 0.1, 0.1, 0.1, 1.0 };
  GLfloat diffuse[] = { 0.6, 0.6, 0.6, 1 };
  GLfloat specular[] = { 0.7, 0.7, 0.3, 1 };
  glLightModelfv( GL_LIGHT_MODEL_AMBIENT, amb_light );
  glLightfv( GL_LIGHT0, GL_DIFFUSE, diffuse );
  glLightfv( GL_LIGHT0, GL_SPECULAR, specular );
  glEnable( GL_LIGHT0 );
  glEnable( GL_COLOR_MATERIAL );
  glShadeModel( GL_SMOOTH );
  glLightModeli( GL_LIGHT_MODEL_TWO_SIDE, GL_FALSE );
  glDepthFunc( GL_LEQUAL );
  glEnable( GL_DEPTH_TEST );
  glEnable(GL_LIGHTING);
  glEnable(GL_LIGHT0); 
}
 
 
void keyboard ( unsigned char key, int x, int y ) 
{
  switch ( key ) {
  case KEY_ESCAPE:  
  exit ( 0 );  
  break;  
  default:  
  break;
  }
}
 
int main(int argc, char **argv) 
{
// set window values
win.width = 640;
win.height = 480;
win.title = "OpenGL/GLUT OBJ Loader.";
win.field_of_view_angle = 45;
win.z_near = 1.0f;
win.z_far = 500.0f;
 
// initialize and run program
glutInit(&argc, argv); // GLUT initialization
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH ); // Display Mode
glutInitWindowSize(win.width,win.height);// set window size
glutCreateWindow(win.title);// create Window
glutDisplayFunc(display);// register Display Function
glutIdleFunc( display );// register Idle Function
  glutKeyboardFunc( keyboard );// register Keyboard Handler
initialize();
obj.Load("master.obj");
glutMainLoop();// run GLUT mainloop
return 0;
}

  


[解决办法]
设置库的路径??

热点排行