+
+ Image ter_hmap;
+ if(!ter_hmap.load("data/terhmap.png")) {
+ fprintf(stderr, "Failed to load terrain heightmap.\n");
+ return false;
+ }
+
+ TerrainParams p;
+ p.xsz = 50;
+ p.ysz = 50;
+ p.max_height = 5;
+ p.xtiles = 20;
+ p.ytiles = 20;
+ p.tile_usub = 10;
+ p.tile_vsub = 10;
+ p.num_octaves = 3;
+ p.noise_freq = 10;
+ p.coarse_heightmap = &ter_hmap;
+
+ terrain.init();
+ terrain.generate(p);
+
+ terrain_mat.diffuse = Vec3(1, 1, 1);
+ terrain_mat.specular = Vec3(0, 0, 0);
+ terrain_mat.shininess = 40;
+ terrain_mat.dtex = terrain_tex;
+ terrain_mat.name = "tt";
+
+ terrain.material = terrain_mat;
+
+ terrain_rend = new Renderer;
+ terrain_rend->camera = camera;
+ terrain_rend->scene = terrain.get_visible(camera);
+ if(!terrain_rend->create()) {
+ fprintf(stderr, "terrain fail\n");
+ return false;
+ }
+
+
+// TODO delete: debugging
+ // for(size_t i=0; i<ground_scene->objects.size(); ++i) {
+ // printf("object: %d\n", (int)i);
+ // printf("mesh: %s\n", ground_scene->objects[i]->mesh->name.c_str());
+ // printf("material: %s\n", ground_scene->objects[i]->material->name.c_str());
+ // printf("transform:\n");
+ // ground_scene->objects[i]->transform.print();
+ // }