Skip to content

General Quality Improvement

Choose a tag to compare

@stephen-hqxu stephen-hqxu released this 16 May 17:54
6214d3a

Release 0.13.5

Due to recent change to the build script, you may need to clean and recompile the whole project.

Quality update

  • Improve project source directory structure for SuperTerrain+ and SuperRealism+ to make them more consistent with the structure of their headers.
  • Change the normalmap specification used by the terrain renderer from DX (negative y) to GL (positive y).
  • Resolve a potential link-time error by inlining definition for STPSmartDeviceMemory instead of including the definition file separately in the source. (#40)
    • Error handling for detecting if stream is assigned is redundant thus removed, since the custom constructor always assigns a stream; if memory moved, the destructor is not called by std::unique_ptr.
  • Change variable useOrtho in STPCameraInformation buffer from bool to unsigned int to match up GL specification.
  • Fix an error for stencil buffer in the scene rendering pipeline where the first bit of the stencil is not used.
  • Clean up some unused include.
  • Rename STPSimplexNoiseSetting.cpp to STPAlgorithmEnvironment.cpp for consistency.
  • Avoid dynamic memory allocation when converting std::string_view to a numeric value in STPTextureDefinitionLanguage.
  • STPCommonCompiler can now detect CUDA architecture automatically. Remove redundant compiler option.

Build script improvement

  • Refactor SetupEnvironment.cmake a little bit. Remove redundant environment setup such as assigning CMAKE_CUDA_RUNTIME_LIBRARY.
  • Add new option STP_DEVELOPMENT_BUILD. Previous option STP_BUILD_TEST and STP_CUDA_VERBOSE_PTX and a new option STP_ENABLE_WARNING depend on this setting.
    • Now compiler warning can be enabled on any configuration; previously it is only enabled on debug build.
  • CUDA runtime library is default to use shared library.
  • Make build target GLAD as a sub-project.

SIMD algebra

  • For performance consideration all definitions are exposed in the header and inlined.
  • Declare both classes to be copiable explicitly.
  • All camera classes in the renderer now uses STPMatrix4x4d directly.
  • Add function to cast to glm::vec4 and glm::mat4 directly from STPVector4d and STPMatrix4x4d.

Namespace refactor

  • Completely remove namespace STPCompute. This was introduced very early on in the project to separate host and device code. It seems more than verbose at this stage thus it is removed.
  • All previous object in the core build target under STPCompute are moved to namespace SuperTerrainPlus.
  • Introduce new namespace for SuperAlgorithm+ target, STPAlgorithm.