]> git.lizzy.rs Git - shadowclad.git/commitdiff
Add lighting (1 point light)
authoroutfrost <kotlet.bahn@gmail.com>
Sun, 13 Jan 2019 18:30:14 +0000 (19:30 +0100)
committeroutfrost <kotlet.bahn@gmail.com>
Sun, 13 Jan 2019 18:30:14 +0000 (19:30 +0100)
glut_janitor.c
render.c

index 0354a5e48c25f785d16fff52b9ccac534f6a5b56..db71091cdc7152a34008f41d65a9a747483dbdce 100644 (file)
@@ -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);
index a1f5a3070edbf2c26fe7e7a049b32d041631a70f..807216d8267c364408e39dcd638b6d30cc255f03 100644 (file)
--- 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();