From dcacdfe98b38f1e99f837c2135710cc11b1926d9 Mon Sep 17 00:00:00 2001 From: Kyle K Date: Thu, 14 Oct 2010 00:40:02 -0500 Subject: pyramid: lighting tweaks --- sdl/GL_todo.txt | 4 ++-- sdl/pyramid.c | 30 +++++++++++++++++++----------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/sdl/GL_todo.txt b/sdl/GL_todo.txt index 99a114f..0a38253 100644 --- a/sdl/GL_todo.txt +++ b/sdl/GL_todo.txt @@ -5,11 +5,11 @@ wip: - extend m3d todo: -- create camera struct/class and walk with arrow keys, gluLookAt() ? -- enable fog - xbox controller - obj loader - look at mesa's sources and borrow OSD stuff - GL error checking and extensions - split SDL +- reflection, build on blending, needs stencil magic? +- draw inhabitants, that would accept a texture id 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) -- cgit v1.2.3