Simplification
Release 0.3.5
Highlights
There're not many major functional changes introduced in this release, but fixes and simplification to our program so less setup work is required before launching the terrain generator.
- Remove
STPHeightfieldSettingsfrom CUDA cosntant memory due to some performance concern about random access, especially during the phase of hydraulic erosion. NowSTPHeightfieldSettingsis initialised statefully, bounded toSTPHeightfieldGeneratorclass. - Remove the necessity to call
setErosionIterationCUDA()separately, erosion iteration count is now stored inSTPRainDropSettingsand terrain generator will initialise erosion generator automatically during object construction. - Cache
ErosionBrushIndicesandErosionBrushWeightsinSTPRainDropSettingson host memory usingstd::vectorso the code base is more neat without the need to implement all copy/move constructor/assignment operator explicitly. - Add function
makeDeviceAvailable()andomitDeviceAvailable()inSTPRainDropSettingsto give user control when to transfer host cache to device memory and invalidate device memory. - Separate header and source code for
STPRainDropSettingsto cut down coompile time.
Fixes and improvement
- Move the definition of some private class/structure to source file so they are opaque.
- Fix incorrectly set chunk rendering buffer loading checker due to the removal of some previously deprecated features, causing all rendering chunks to be mapped and reloaded every frame even if all of them have been loaded.