Ambient Occlusion
Release 0.12.8
We introduced SSAO in release 0.11.8 as a fundamental technique for ambient occlusion. In this release a more modern ambient occlusion technique is brought to SuperTerrain+.
Horizon-based ambient occlusion
- Implement HBAO based on the current implementation of ambinet occlusion.
- Enable switching between different AO algorithms in
STPAmbientOcclusion. - Rename
STPScreenSpaceAmbientOcclusion.glsltoSTPAmbienOcclusion.glslfor generality. - Refactor and optimise view space geometry calculation.
General fixes and improvement
- Explicit initialisation to sqlite database during
SuperTerrain+engine initialisation. - Fix a undefined behaviour when naming the texture database
STPTextureDatabasewhereoperator+is used between aconst char*andunsigned int. Surround the integer withto_stringto fix the issue. - Add
STPProjectionCategoryinSTPCamerato identify the type of projection of a camera instance. - Use
offsetofoperator to identify variable offset instead of using hardcoded offset inSTPScenePipeline::STPCameraInformationMemory. - Add support for GL extension GL_NV_representative_fragment_test.
- Refactor heightfield triple texture scale blending system to cut down the scale of branching and divergence.
- Deprecate and remove support for logarithmic depth buffer because it is not friendly to depth reconstruction. We will consider using reversed depth buffer in the future release.
- Add ambient occlusion texture for the demo application.