diff options
Diffstat (limited to 'sdl/pyramid.c')
-rw-r--r-- | sdl/pyramid.c | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/sdl/pyramid.c b/sdl/pyramid.c index fded7c5..9e4bd8a 100644 --- a/sdl/pyramid.c +++ b/sdl/pyramid.c @@ -84,12 +84,27 @@ static void SetupRC() /* ambient RGBA intensity of the entire scene */ glLightModelfv(GL_LIGHT_MODEL_AMBIENT, whiteLight); glLightfv(GL_LIGHT0, GL_AMBIENT, sourceLight); - glLightfv(GL_LIGHT0, GL_DIFFUSE, sourceLight); + glLightfv(GL_LIGHT0, GL_DIFFUSE, fBrightLight); + glLightfv(GL_LIGHT0, GL_SPECULAR, fBrightLight); glLightfv(GL_LIGHT0, GL_POSITION, lightPos); + glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); - + /* enable color tracking */ glEnable(GL_COLOR_MATERIAL); + glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE); + glMaterialfv(GL_FRONT, GL_SPECULAR, fBrightLight); + glMateriali(GL_FRONT, GL_SHININESS, 128); + + /* turn on anti aliasing for points, lines, and polygons */ + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_BLEND); + glEnable(GL_POINT_SMOOTH); + glHint(GL_POINT_SMOOTH_HINT, GL_NICEST); + glEnable(GL_LINE_SMOOTH); + glHint(GL_LINE_SMOOTH_HINT, GL_NICEST); + glEnable(GL_POLYGON_SMOOTH); + glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST); /* set Material properties to follow glColor values */ glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE); @@ -128,15 +143,8 @@ static void SetupRC() /* multisampling for polygons */ //glEnable(GL_MULTISAMPLE); - /* turn on anti aliasing for points, lines, and polygons */ - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glEnable(GL_BLEND); - glEnable(GL_POINT_SMOOTH); - glHint(GL_POINT_SMOOTH_HINT, GL_NICEST); - glEnable(GL_LINE_SMOOTH); - glHint(GL_LINE_SMOOTH_HINT, GL_NICEST); - glEnable(GL_POLYGON_SMOOTH); - glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST); + /* don't know about this, but why not */ + glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR); } static void keys(SDL_keysym *keysym, unsigned int *keys_held, int flag) |