Don't like ads? PRO users don't see any ads ;-)
Guest

Light(General)

By: a guest on Jul 31st, 2012  |  syntax: C  |  size: 2.31 KB  |  hits: 17  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include <GL/glut.h>
  2. #include <GL/gl.h>
  3. #include <GL/glu.h>
  4. #include <math.h>
  5. #include <stdio.h>
  6. #include <string.h>
  7.  
  8. GLUquadricObj *obj;
  9.  
  10.  
  11.  
  12. void init(void)
  13. {
  14.    GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
  15.    GLfloat mat_shininess[] = { 50.0 };
  16.    //GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };
  17.    GLfloat light_position[] = { 3.0, 2.0, 4.0, 0.0 };
  18.    glClearColor (0.0, 0.0, 0.0, 0.0);
  19.    glShadeModel (GL_SMOOTH);
  20.  
  21.    glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
  22.    glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
  23.    glLightfv(GL_LIGHT0, GL_POSITION, light_position);
  24.  
  25.    glEnable(GL_LIGHTING);
  26.    glEnable(GL_LIGHT0);
  27.    glEnable(GL_DEPTH_TEST);
  28.  
  29.  
  30.  
  31.         /**********************************/
  32.         /*float ambientLight[] = { 0.3f, 0.3f, 0.3f, 1.0f };
  33.         float diffuseLight[] = { 0.7f, 0.7f, 0.7f, 1.0f };
  34.         float specular[] = { 1.0f, 1.0f, 1.0f, 1.0f};
  35.         float lightPos[] = { 10.0f, 60.0f, -45.0f, 1.0f };
  36.         float specref[] = { 1.0f, 1.0f, 1.0f, 1.0f };
  37.        
  38.         glFrontFace(GL_CCW);
  39.         glShadeModel(GL_SMOOTH);
  40.  
  41.         glLightfv(GL_LIGHT0,GL_AMBIENT,ambientLight);
  42.         glLightfv(GL_LIGHT0,GL_DIFFUSE,diffuseLight);
  43.         glLightfv(GL_LIGHT0,GL_SPECULAR,specular);
  44.         glLightfv(GL_LIGHT0,GL_POSITION,lightPos) ;
  45.         //glEnable(GL_LIGHT0);
  46.  
  47.         glEnable(GL_COLOR_MATERIAL);
  48.         glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
  49.         glMaterialfv(GL_FRONT, GL_SPECULAR,specref);
  50.         glMateriali(GL_FRONT,GL_SHININESS,128);*/
  51. }
  52.  
  53. void display(void)
  54. {
  55.    glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  56.    glutSolidSphere (1.0, 20, 16);
  57.    glFlush ();
  58. }
  59.  
  60. void reshape (int w, int h)
  61. {
  62.    glViewport (0, 0, (GLsizei) w, (GLsizei) h);
  63.    glMatrixMode (GL_PROJECTION);
  64.    glLoadIdentity();
  65.    if (w <= h)
  66.       glOrtho (-1.5, 1.5, -1.5*(GLfloat)h/(GLfloat)w,
  67.          1.5*(GLfloat)h/(GLfloat)w, -10.0, 10.0);
  68.    else
  69.       glOrtho (-1.5*(GLfloat)w/(GLfloat)h,
  70.          1.5*(GLfloat)w/(GLfloat)h, -1.5, 1.5, -10.0, 10.0);
  71.    glMatrixMode(GL_MODELVIEW);
  72.    glLoadIdentity();
  73. }
  74.  
  75. int main(int argc, char** argv)
  76. {
  77.    glutInit(&argc, argv);
  78.    glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
  79.    glutInitWindowSize (500, 500);
  80.    glutInitWindowPosition (100, 100);
  81.    glutCreateWindow (argv[0]);
  82.    init ();
  83.    glutDisplayFunc(display);
  84.    glutReshapeFunc(reshape);
  85.    glutMainLoop();
  86.    return 0;
  87. }