From be9c54a94a8f8bcdfdeef7c704537fe1c7d0f2ff Mon Sep 17 00:00:00 2001 From: outfrost Date: Sun, 13 Jan 2019 19:30:14 +0100 Subject: [PATCH] Add lighting (1 point light) --- glut_janitor.c | 16 +++++++++++++++- render.c | 8 ++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/glut_janitor.c b/glut_janitor.c index 0354a5e..db71091 100644 --- a/glut_janitor.c +++ b/glut_janitor.c @@ -3,6 +3,20 @@ void initRender() { // Set the clear colour to black glClearColor(0.0f, 0.0f, 0.0f, 1.0f); + + GLfloat light0_ambient[] = {0.1f, 0.1f, 0.1f, 1.0f}; + GLfloat light0_diffuse[] = {1.0f, 1.0f, 1.0f, 1.0f}; + GLfloat light0_specular[] = {1.0f, 1.0f, 1.0f, 1.0f}; + GLfloat light0_position[] = {5.0f, 10.0f, 10.0f, 1.0f}; + + glLightfv(GL_LIGHT0, GL_AMBIENT, light0_ambient); + glLightfv(GL_LIGHT0, GL_DIFFUSE, light0_diffuse); + glLightfv(GL_LIGHT0, GL_SPECULAR, light0_specular); + glLightfv(GL_LIGHT0, GL_POSITION, light0_position); + + glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 1.0f); + glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.05f); + glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, 0.001f); } void resizeStage(GLsizei width, GLsizei height) { @@ -18,7 +32,7 @@ void resizeStage(GLsizei width, GLsizei height) { GLfloat aspectRatio = (GLfloat) width / (GLfloat) height; - glOrtho(-10.0, 10.0, -10.0/aspectRatio, 10.0/aspectRatio, 128.0, -128.0); + glOrtho(-8.0, 8.0, -8.0/aspectRatio, 8.0/aspectRatio, 128.0, -128.0); glRotatef(45.0f, 1.0f, 0.0f, 0.0f); glRotatef(45.0f, 0.0f, 1.0f, 0.0f); diff --git a/render.c b/render.c index a1f5a30..807216d 100644 --- a/render.c +++ b/render.c @@ -11,8 +11,16 @@ void renderScene() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); + glEnable(GL_NORMALIZE); + glEnable(GL_CULL_FACE); + + glDisable(GL_LIGHTING); drawAxes(); + glEnable(GL_LIGHTING); + + glEnable(GL_LIGHT0); drawModelRecursive(model, (*model).mRootNode); + glDisable(GL_LIGHT0); glFlush(); glutSwapBuffers(); -- 2.44.0