So now the time has come to wrap up this project in before the presentations. Last week was the last week of actual dedicated time to the project. Since the last blog post, progress has been good. Loading the world is now stable, as the rays now follow the edges of the world to load in the surface around the hit area. This improvement made the loading acceptable even though you might still see holes here and there for a short moment.
A lot has been done on the landscape generation. The system was rewritten several times due to arising problems. With the addition of biomes, the generation turned awfully slow on both the CPU and the GPU. By examining it, it was clear that the problem was cache thrashing. Cachegrind showed a cache miss rate of 20% compared to 0.4% before. In other words, a more data oriented approach was needed, and this was one of the causes for a rewrite of the generation algorithms to use the data better. It was solved for the gPU side but the problem for now persists on the CPU side.
We also came up with an experimental idea on how to solve lighting. After a quick and dirty implementation, the result was surprisingly good and some tweaking made it even better.
Major rewrites and cleanups have also been done to clear out bugs and tidy up the code. Among others, the bug that made the textures flicker when being far from the origin is now fixed. Along with that one, the whole project was update to modern openGL ways and the shaders were updated to GLSL version 4.0.
Not much time is left until the presentation and the gradshow, so no major features will be implemented. The time will be spent on preparing presentations, tweaking things and depending on time, some minor features might be implemented.