fixed issues in shaders
[demo] / src / main.cc
index 1246d2f..1734fc6 100644 (file)
@@ -58,6 +58,8 @@ static Vec3 cam_pos;
 static float aspect;
 static OrbitCamera *camera;
 
+static float fog_density;
+
 static Scene *cow_scene;
 static Object *cow_object;
 static MorphRenderer *cow_rend;
@@ -119,6 +121,8 @@ static bool init(Gfx_API api)
        if(!gfx_init(api))
                return false;
 
+       fog_density = 0.0037;
+
        sdr_man = new ShaderManager;
 
        camera = new OrbitCamera;
@@ -181,6 +185,7 @@ static bool init(Gfx_API api)
 
        skybox_tex = gfx_create_texture();
        skybox_tex->load("data/cubemap/cubemap.hdr");
+       // skybox_tex->load("data/cubemap/irradiance.hdr");
        terrain_rend->set_sky_tex(skybox_tex);
 
        if(!terrain_rend->create()) {
@@ -223,6 +228,14 @@ static void clbk_key(GLFWwindow *win, int key, int scancode, int action, int mod
                        move_camera = !move_camera;
                        break;
 
+               case 'F':
+                       fog_density = fog_density < 1 - 0.0009 ? fog_density + 0.0001 : 1;
+                       break;
+
+               case 'U':
+                       fog_density = fog_density > 0.0001 ? fog_density - 0.0001 : 0;
+                       break;
+
                default:
                        break;
                }
@@ -312,9 +325,12 @@ static void display()
 
        gfx_clear(0.1, 0.1, 0.1);
 
+       printf("fog_density: %f\n", fog_density);
+       terrain_rend->fog_density = fog_density;
        terrain_rend->draw();
 
        cow_pos.y = terrain.get_height(cow_pos);
        cow_object->transform.translation(cow_pos);
+       cow_rend->fog_density = fog_density;
        cow_rend->draw();
 }
\ No newline at end of file