Introducing Free-slip Hydraulic Erosion
Release 0.3.0
This is a update for #15 to address suggestion pointed out in #1.
New feature
- Water droplet can now freely move to their respective neighbour chunks instead of ending its lifetime early.
- Adding two INI lines
freeSlipXandfreeSlipZ, denotes the number of chunk in X and Z direction that will be used as neighbours for free-slip synchronisation. - Implementing local to global index lookup table to reference neighbour chunks efficiently.
- Implementing interpolation index lookup table to correct edge seams efficiently.
- Update CUDA toolkit version to 11.3 for bug fixe stated in #14, improvement in performance and new features, this will be the minimum requirement in all future releases.
Other improvement
- A major overhaul to kernel launch and host multithread model.
- Remove dedicated normal map cache in memory.
- Integreate heightmap and normalmap into a single texture in rendering buffer.
- Reduce rendering buffer clear buffer size by 20%.
- Merge formatting kernel and normalmap generation kernel into one new kenel, rendering buffer generation kernel, thus cutting down the number of kernel launch and copy both by 20%.
- Precache heightmap into shared memory during normalmap generation.
- Fixing over-allocated memory, improve memory use efficiency.
cudaStream_tis now pooled.- General programming practice and style improvement.
- Documentation for free-slip erosion.