diff --git a/src/main.cpp b/src/main.cpp index bd1663756c3706325a65a08aed601aa714af42f6..9000cc07aa36ea5d865eec927a17b28c73c8c462 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 81ad71f0edc8403a104a97a8b8790c82aa6d4d9b..a8a0d8552bc405bb84d87735bab3f084ebb72942 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 c8a38c40baa6df2a3ac6c1a8a6a8f3b0cb762210..9a8f45b6e8d7e4cedbc2326d2285768d66b3eea2 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: