Skip to content

New Blur Filter

Choose a tag to compare

@stephen-hqxu stephen-hqxu released this 09 Jun 14:47
ceb3638

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_of for 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 STPConcurrentStreamManager in the world pipeline implementation.
  • CUDA async function calls are now sent to multiple streams to maximise the ability of parallelism.

Free-slip erosion

  • Separate STPErosionBrushGenerator from STPRainDropSetting.
  • Add STPErosionBrush to store information about generated erosion brush.
  • Make STPRainDropSetting as a POD-type.
  • Remove extra declarations for default functions in STPRainDropSetting, STPHeightfieldSetting and STPConfiguration.
  • Refactor rename member variables for consistent style in STPRainDrop.

General fixes and improvement

  • Fix a grammar mistake in bug report template.
  • Improve STPSingleHistogramFilter with pointer to implementation.
  • Add STPSmartEvent as a smartly managed CUDA event object.
  • Add STPObjectPool which reuses objects to avoid expensive recreation.
    • Refactor STPHeightfieldGenerator, STPBiomefieldGenerator, STPBiomeFactory and STPSingleHistogramFilter with the new object pool.
  • Add test for STPSmartEvent, STPObjectPool and STPSmartDeviceMemory::STPPitchedDeviceMemory.
  • Replace an outdated information in STPTestRTC.
  • Correct some code style.
  • For all use of std::optional, replace unnecessary value() 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.