summaryrefslogtreecommitdiffstats
path: root/src/Game.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Game.cpp')
-rw-r--r--src/Game.cpp31
1 files changed, 19 insertions, 12 deletions
diff --git a/src/Game.cpp b/src/Game.cpp
index 625d4d4..205125a 100644
--- a/src/Game.cpp
+++ b/src/Game.cpp
@@ -19,12 +19,13 @@
#include "Game.h"
+#include "gl.h"
#include "BSPTree.h"
#include "Level.h"
#include "Shader.h"
+#include "ShadowVolume.h"
#include "Triangle.h"
-#include "gl.h"
#include <algorithm>
namespace Zoom {
@@ -34,17 +35,16 @@ Game::Game(bool multisample) : playerPos(vmml::vec3f::ZERO), playerRotY(vmml::ma
glClearColor(0.0, 0.0, 0.0, 1.0);
glClearDepth(1.0);
glEnable(GL_DEPTH_TEST);
- //glDepthFunc(GL_LEQUAL);
glEnable(GL_BLEND);
- //glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
#ifndef _WIN32
if(multisample)
glEnable(GL_MULTISAMPLE_ARB);
#endif
- glEnable(GL_LIGHTING);
+ glLightModelfv(GL_LIGHT_MODEL_AMBIENT, vmml::vec4f(0.1, 0.1, 0.1, 1).array);
+
glLightfv(GL_LIGHT0, GL_AMBIENT, vmml::vec4f::ZERO.array);
glLightfv(GL_LIGHT0, GL_DIFFUSE, vmml::vec4f::ONE.array);
glLightfv(GL_LIGHT0, GL_SPECULAR, vmml::vec4f::ONE.array);
@@ -142,17 +142,24 @@ void Game::render() {
renderer.render(triangles);
- /*glBegin(GL_LINES);
+ Shader::disable();
+ glDepthFunc(GL_LEQUAL);
+ glBlendFunc(GL_ONE, GL_ZERO);
- glColor3f(0, 0, 1);
- glVertex4f(-1, -0.5, -2, 1);
- glVertex4f(1, -0.5, -2, 1);
+ glBegin(GL_LINES);
- glColor3f(1, 0, 0);
- glVertex4f(0, -0.5, -2, 1);
- glVertex4f(1, 0, 0, 0);
+ glColor3f(1, 1, 0);
+
+ for(std::vector<BSPTree::TriangleRecord>::iterator t = triangles.begin(); t != triangles.end(); ++t) {
+ ShadowVolume v(t->triangle, light);
+
+ for(int i = 0; i < 3; ++i) {
+ glVertex3fv(v.getVertex(i).array);
+ glVertex3fv((v.getVertex(i)+v.getDirection(i)).array);
+ }
+ }
- glEnd();*/
+ glEnd();
}
}