/* TODO: fix those */
#include "camera.h"
#include "mesh.h"
+#include "morph_renderer.h"
#include "object.h"
-#include "renderer.h"
#include "scene.h"
#include "terrain.h"
#include "texture.h"
int win_w = 800;
int win_h = 600;
-
ShaderManager *sdr_man;
+double time_sec;
+
/* variables */
static bool move_camera;
static float aspect;
static OrbitCamera *camera;
+static float fog_density;
+
static Scene *cow_scene;
static Object *cow_object;
-static Renderer *cow_rend;
+static MorphRenderer *cow_rend;
static Terrain terrain;
static Texture *skybox_tex;
if(!gfx_init(api))
return false;
+ fog_density = 0.0037;
+
sdr_man = new ShaderManager;
camera = new OrbitCamera;
return false;
}
- cow_rend = new Renderer;
+ cow_rend = new MorphRenderer;
cow_rend->camera = camera;
cow_rend->scene = cow_scene;
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;
}
static void display()
{
static float prev_tsec;
- float tsec = glfwGetTime();
- float dt = tsec - prev_tsec;
- prev_tsec = tsec;
+ time_sec = glfwGetTime();
+ float dt = time_sec - prev_tsec;
+ prev_tsec = time_sec;
update(dt);
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);