General Quality Improvement
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+andSuperRealism+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
STPSmartDeviceMemoryinstead 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.
- 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
- Change variable
useOrthoinSTPCameraInformationbuffer 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.cpptoSTPAlgorithmEnvironment.cppfor consistency. - Avoid dynamic memory allocation when converting
std::string_viewto a numeric value inSTPTextureDefinitionLanguage. STPCommonCompilercan now detect CUDA architecture automatically. Remove redundant compiler option.
Build script improvement
- Refactor
SetupEnvironment.cmakea little bit. Remove redundant environment setup such as assigningCMAKE_CUDA_RUNTIME_LIBRARY. - Add new option
STP_DEVELOPMENT_BUILD. Previous optionSTP_BUILD_TESTandSTP_CUDA_VERBOSE_PTXand a new optionSTP_ENABLE_WARNINGdepend 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
GLADas 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
STPMatrix4x4ddirectly. - Add function to cast to
glm::vec4andglm::mat4directly fromSTPVector4dandSTPMatrix4x4d.
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
STPComputeare moved to namespaceSuperTerrainPlus. - Introduce new namespace for
SuperAlgorithm+target,STPAlgorithm.