New Blur Filter
Release 0.13.14
Bilateral filter (#44)
On top of the current implementation of STPGaussianFilter, a depth-aware bilateral filter is added for more robust blurring for ambient occulusion noise. For now the blur filter supports two different variants:
- Naive Gaussian filter
- Bilateral filter
Also refactor Gaussian kernel generation a little bit.
STPWorldPipeline
- Remove copy local chunk function because it is useless.
- Remove the local chunk complete flag, and check for memory completeness with the old method
std::all_offor robustness. - Fix a bug where there is a chance splatmap of the centre chunk is not updated (because the we had only checked the neighbours).
- When a chunk is reloaded, all its neighbours will also have the splatmap recomputed; previously only the reloading chunk will have it recomputed.
- Wait for stream to finish at the end of loader thread to avoid stalling the rendering thread.
- Add
STPConcurrentStreamManagerin the world pipeline implementation. - CUDA async function calls are now sent to multiple streams to maximise the ability of parallelism.
Free-slip erosion
- Separate
STPErosionBrushGeneratorfromSTPRainDropSetting. - Add
STPErosionBrushto store information about generated erosion brush. - Make
STPRainDropSettingas a POD-type. - Remove extra declarations for default functions in
STPRainDropSetting,STPHeightfieldSettingandSTPConfiguration. - Refactor rename member variables for consistent style in
STPRainDrop.
General fixes and improvement
- Fix a grammar mistake in bug report template.
- Improve
STPSingleHistogramFilterwith pointer to implementation. - Add
STPSmartEventas a smartly managed CUDA event object. - Add
STPObjectPoolwhich reuses objects to avoid expensive recreation.- Refactor
STPHeightfieldGenerator,STPBiomefieldGenerator,STPBiomeFactoryandSTPSingleHistogramFilterwith the new object pool.
- Refactor
- Add test for
STPSmartEvent,STPObjectPoolandSTPSmartDeviceMemory::STPPitchedDeviceMemory. - Replace an outdated information in
STPTestRTC. - Correct some code style.
- For all use of
std::optional, replace unnecessaryvalue()with dereferencing operator to avoid runtime check. - Fix some typos.
- Remove an unused variable from
STPDeferredShading.frag. - Add a 3rd-party license for water wave shader.
- Add a credit for normal map blending.