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