Resolve Issues
Release 0.13.11
World pipeline double buffering (#37)
- Implement a double buffering mechanism for
STPWorldPipeline. Generation is done in the back buffer while the renderer can still read from the front buffer. Therefore sync before rendering is no longer necessary. - Fix the splatmap border seams by delaying splatmap generation until all chunks are loaded.
- Add a memory manager for
STPWorldPipeline. - Revamp the specification of
STPWorldPipeline. See the documentation in source code for more details.
Configurable specular power (#38)
Now the scene pipeline allows user to specify specularity for Phong shading model. As Phong does not model roughness very well, our implementation simply linear interpolates between a user-specified range of shininess based on the roughness read from G-Buffer.
To reserve spaces for supporting more shading model in the future, the scene pipeline now allows specifying shading model at initialisation.
Automatic resource download (#42)
- Simplify the process of downloading additional resources not included in the commit, and provide a better way of tracking resource changes.
- Update
READMEbuild instruction to reflect this. - Remove unused functions from
GLADand only retain ARB and NV extensions. - Bump stb_image.h to nothings/stb@5ba0baa.
General fixes and improvement
- Add two issue templates. (#46)
- Add version checking for SQLite library.
- Remove some unnecessary
${}for variables inifcondition in CMake. - Add a default constructor for
STPBindlessTextureandSTPBindlessBuffer. - Replace use of
std::optional<STPBindlessTexture>withSTPBindlessTextureas now it can be constructed by default.- The same applies to use of
STPBindlessBuffer.
- The same applies to use of
- Make bindless texture and bindless buffer object default constructible.
- Make
STPSceneLightandSTPLightShadowdefault move constructible. STPDirectionalLightnow take the shadow instance as an optional rather than a unique pointer, to avoid dynamic memory allocation.- Improve
STPCascadedShadowMapfor better handling of move construction.STPCascadedShadowMapcan now be moved, and it will properly deregister the old instance from camera status callback and register the new one.
- Remove unnecessary buffer unmap call in destructor since GL does it automatically upon deletion of object.
- Add a clang-format document.
- Break some super super long codes into two lines.
- Change variable
BaseVertexinSTPIndirectCommand::STPDrawElementfrom uint to int to match the GL specification. - Avoid repetitive evaluation of end iteration in
STPWorldPipeline. - Remove unused typedef
STPLightIdentifierfromSTPScenePipeline. - Add
STPPitchedDeviceMemoryas another smart device memory object. - Convert encoding for README to UTF-8.