From b3230d4944febd42ad65d90a20cd1dc31255359b Mon Sep 17 00:00:00 2001
From: bobarna <barnabas.borcsok@gmail.com>
Date: Sun, 29 Nov 2020 02:33:11 +0100
Subject: [PATCH] fixed depth buffer -- yaaaaay

---
 src/main.cpp                        |  1 +
 src/rendering/Scene.cpp             | 19 ++++++++++---------
 src/rendering/shaders/PhongShader.h |  4 ++--
 3 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/src/main.cpp b/src/main.cpp
index bd16637..9000cc0 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -29,6 +29,7 @@ Scene Scene(WIDTH, HEIGHT);
 static void Initialize() {
     glViewport(0, 0, WIDTH, HEIGHT);
     glMatrixMode(GL_MODELVIEW);
+    glDepthMask(GL_TRUE);
     glLoadIdentity();
     glClearColor(196.0f / 255.0f, 233.0f / 255.0f, 241.0f / 255.0f, 1.0f);
 }
diff --git a/src/rendering/Scene.cpp b/src/rendering/Scene.cpp
index 81ad71f..a8a0d85 100644
--- a/src/rendering/Scene.cpp
+++ b/src/rendering/Scene.cpp
@@ -24,26 +24,26 @@ void Scene::Build() {
     auto sphere = new Sphere();
     Shader *phongShader = new PhongShader();
     Material *headMaterial = new Material;
-    headMaterial->kd = vec3(0.6f, 0.2f, .2f);
-    headMaterial->ks = vec3(.3, .2, .2);
+    headMaterial->kd = vec3(0.5f, 0.3f, .3f);
+    headMaterial->ks = vec3(.1, .05, .05);
     headMaterial->ka = vec3(.2f, .2f, .2f);
-    headMaterial->shininess = 100;
+    headMaterial->shininess = 20;
 
-//    Texture *headTexture = new UniformColorTexture(.6f, .2f, 0);
-    Texture *headTexture = new CheckerBoardTexture(10, 10);
+    Texture *headTexture = new UniformColorTexture(.6f, .2f, 0);
+//    Texture *headTexture = new CheckerBoardTexture(1, 0);
 
     auto headObject = new HeadObject(phongShader, sphere, headMaterial, headTexture);
 
     headObject->Scale(vec3(.15, .1, .1));
-//    objects.push_back(headObject);
+    objects.push_back(headObject);
 
     auto PBDSim = new PBDSimulation(headObject, nrSims, nrSegments, lSeg);
     auto simulationObject = new HairSimObject(headObject, basicShader, PBDSim);
-//    sims.push_back(simulationObject);
+    sims.push_back(simulationObject);
 
     auto testObject =
             new Object(phongShader,
-                       new ObjGeometry("../data/susanne.obj"),
+                       new ObjGeometry("../data/plane.obj"),
                        headMaterial,
                        headTexture);
 
@@ -67,8 +67,9 @@ void Scene::Build() {
 void Scene::Render() {
     RenderState state = camera.getState();
     state.lights = lights;
-    for (auto *o: objects) o->Draw(state);
+
     for (auto *so: sims) so->Draw(state);
+    for (auto *o: objects) o->Draw(state);
 }
 
 //delta_t is infinitesimal
diff --git a/src/rendering/shaders/PhongShader.h b/src/rendering/shaders/PhongShader.h
index c8a38c4..9a8f45b 100644
--- a/src/rendering/shaders/PhongShader.h
+++ b/src/rendering/shaders/PhongShader.h
@@ -72,7 +72,7 @@ class PhongShader : public Shader {
 		void main() {
 			vec3 N = normalize(wNormal);
 			vec3 V = normalize(wView);
-			if (dot(N, V) < 0) N = -N;	// prepare for one-sided surfaces like Mobius or Klein
+//			if (dot(N, V) < 0) N = -N;	// prepare for one-sided surfaces like Mobius or Klein
 			vec3 texColor = texture(diffuseTexture, texcoord).rgb;
 			vec3 ka = materials.ka * texColor;
 			vec3 kd = materials.kd * texColor;
@@ -87,7 +87,7 @@ class PhongShader : public Shader {
                            (kd * texColor * cost + materials.ks * pow(cosd, materials.shininess)) * lights[i].Le;
 			}
 			fragmentColor = vec4(radiance, 1);
-            fragmentColor = vec4(texcoord.xy, 0, 1);
+//            fragmentColor = vec4(N, 1);
 		}
 	)";
 public:
-- 
GitLab