Skip to content

Improve Precision

Choose a tag to compare

@stephen-hqxu stephen-hqxu released this 03 Jul 21:11
3836fc2

Release 0.14.5

Reversed depth buffer (#45)

  • Modify projection matrices for main camera and shadow camera to use zero-to-one convention.
  • Change clip volume to DirectX convention.
  • Flip near and far plane for projection.
  • Clear depth of main camera and shadow camera to zero, as well as border colours of shadow texture / samplers.
  • Use greater than for depth comparison logic.
  • Update implementation for depth reconstruction in shader to match up reversed depth logic.
  • Modify shadow bias to use addition instead of subtraction on the fragment depth.
  • Add a documentation regarding reversed depth buffer as it is not trivial for developers.

General fixes and improvement

  • Avoid updating the light direction for directional light (and hence re-render the shadow map) when the sun is invisible (and hence no light).
  • Add a few flags to STPLightShadow to allow user to mask out shadow map update.
  • STPSun now calculates the initial sun direction at initialisation.
  • Clarify some behaviours in STPDirectionalLight.
  • Refactor deferred lighting shader, view direction is computed outside the loop to avoid repetitive calculation.
  • Make several colour spectrums to use SRGB format.
  • Improve the water opacity function to make the edge connecting the terrain smoother.
  • Refactor STPFile, STPSmartDeviceMemory and STPHashCombine to use namespace instead of class.
  • Improve GL context robustness.
  • Enable no error context on release build.
  • Disable depth and stencil buffer on default framebuffer.
  • Inline definition for STPNullablePrimitive; declare all functions as noexcept.
  • Refactor GL objects management class in STPRealism+.
  • Do not quote a variable with ${} when using it as an if condition for CMake.
  • Improve documentations for sqlite build script.