summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKyle K <kylek389@gmail.com>2010-10-14 00:40:02 -0500
committerKamil Kaminski <kamilkss@gmail.com>2010-10-14 00:40:02 -0500
commitdcacdfe98b38f1e99f837c2135710cc11b1926d9 (patch)
treee5260729b63b508a373992539991746466102e67
parent16010eaddb9e6497f4523d639f25b65c96b597ca (diff)
downloadGLPyramid-dcacdfe98b38f1e99f837c2135710cc11b1926d9.tar.gz
GLPyramid-dcacdfe98b38f1e99f837c2135710cc11b1926d9.tar.bz2
GLPyramid-dcacdfe98b38f1e99f837c2135710cc11b1926d9.zip
pyramid: lighting tweaks
-rw-r--r--sdl/GL_todo.txt4
-rw-r--r--sdl/pyramid.c30
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)