Skocz do zawartości

[OPENGL] Oswietlenie padające na polygony


Rekomendowane odpowiedzi

Napisano

Witam i z góry przepraszam za lekki OT

 

Mam w oglu ustawione kilka polygonów, oteksturowane jednokolorową bitmapą. Jak powinienem zmienić ośwetlenie by na obiekcie otrzymać cieniownie ?

 

Obecne ustawienia:

  const GLfloat light_ambient[]  = { 0.0f, 0.0f, 0.0f, 1.0f };
   const GLfloat light_diffuse[]  = { 1.0f, 1.0f, 1.0f, 1.0f };
   const GLfloat light_specular[] = {1.0f, 1.0f, 1.0f, 1.0f };
   const GLfloat light_position[] = { 2.0f, 5.0f, 5.0f, 0.0f };

   const GLfloat mat_ambient[]    = { 1.0f, 1.0f, 1.0f, 1.0f };
   const GLfloat mat_diffuse[]    = { 1.0f, 1.0f, 1.0f, 1.0f };
   const GLfloat mat_specular[]   = { 1.0f, 1.0f, 1.0f, 1.0f };


   GLfloat shinines[] = { 50.0 };
   GLfloat blanc[] = { 1.0,1.0,1.0,1.0 };


  glEnable(GL_LIGHTING);
  glEnable(GL_LIGHT0);
  glEnable(GL_AUTO_NORMAL);
  glEnable(GL_NORMALIZE);

  glDepthFunc(GL_LEQUAL);
  glEnable(GL_DEPTH_TEST);
  glClearDepth(1.0f); 
  glShadeModel (GL_SMOOTH);
  glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); 

  glEnable(GL_TEXTURE_2D);
  glPixelStorei(GL_UNPACK_ALIGNMENT, 1);

  glEnable(GL_LIGHT0);
  glEnable(GL_NORMALIZE);
  glEnable(GL_COLOR_MATERIAL);
  glEnable(GL_LIGHTING);

  glLightfv(GL_LIGHT0, GL_AMBIENT,  light_ambient);
  glLightfv(GL_LIGHT0, GL_DIFFUSE,  light_diffuse);
  glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
  glLightfv(GL_LIGHT0, GL_POSITION, light_position);

  glMaterialfv(GL_FRONT, GL_AMBIENT,   mat_ambient);
  glMaterialfv(GL_FRONT, GL_DIFFUSE,   mat_diffuse);
  glMaterialfv(GL_FRONT,GL_SPECULAR,blanc);
  glMaterialfv(GL_FRONT,GL_SHININESS,shinines);
...
 glutInitDisplayMode(GLUT_RGBA|GLUT_DEPTH|GLUT_DOUBLE);

 

Z góry dzięki za poradę

  • Odpowiedzi 1
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Top Posters In This Topic




×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności