[OpenGL, C++] Nie działa oświetlenie diffuse - gluSphere
Ostatnio zmodyfikowano 2014-06-23 12:40
Malutki Temat założony przez niniejszego użytkownika |
[OpenGL, C++] Nie działa oświetlenie diffuse - gluSphere » 2014-06-21 22:22:23 Hej ;)
Mam problem z kodem, robię prosty układ słoneczny i chciałem umieścić oświetlenie w centrum układu współrzędnych gdzie mam słońce. Napisałem takie linijki:
GLfloat ambientLight[] = { 0.1f, 0.1f, 0.1f, 1.0f }; GLfloat diffuseLight[] = { 0.8f, 0.8f, 0.8f, 1.0f }; GLfloat specular[] = { 0.1f, 0.1f, 0.1f, 1.0f }; GLfloat lightPos[] = { 0.0f, 0.0f, 0.0f, 1.0f }; GLfloat specref[] = { 1.0f, 1.0f, 1.0f, 1.0f };
glLightfv( GL_LIGHT0, GL_AMBIENT, ambientLight ); glLightfv( GL_LIGHT0, GL_DIFFUSE, diffuseLight ); glLightfv( GL_LIGHT0, GL_SPECULAR, specular ); glLightfv( GL_LIGHT0, GL_POSITION, lightPos );
"planetę" rysuję takim kodem:
void kula1( void ) { GLUquadricObj * obj; obj = gluNewQuadric(); gluQuadricTexture( obj, GL_TRUE ); glBindTexture( GL_TEXTURE_2D, texture[ 0 ] ); glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE ); glColor3d( 1.0, 0.8, 0.8 ); glEnable( GL_TEXTURE_2D ); gluSphere( obj, 15, 15, 15 ); glDisable( GL_TEXTURE_2D ); }
I teraz przed wywołaniem rysowania kuli wpisuję
glEnable( GL_LIGHTING ); glEnable( GL_LIGHT0 );
Efekt jest taki, że obiekty są oświetlone z każdej strony... dlaczego skoro lightPos jest punktem i w centrum? :< |
|
DejaVu |
» 2014-06-23 12:40:34 |
|
« 1 » |