Skip to content

Resolve Issues

Choose a tag to compare

@stephen-hqxu stephen-hqxu released this 01 Jun 20:06
e73befe

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 README build instruction to reflect this.
  • Remove unused functions from GLAD and 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 in if condition in CMake.
  • Add a default constructor for STPBindlessTexture and STPBindlessBuffer.
  • Replace use of std::optional<STPBindlessTexture> with STPBindlessTexture as now it can be constructed by default.
    • The same applies to use of STPBindlessBuffer.
  • Make bindless texture and bindless buffer object default constructible.
  • Make STPSceneLight and STPLightShadow default move constructible.
  • STPDirectionalLight now take the shadow instance as an optional rather than a unique pointer, to avoid dynamic memory allocation.
  • Improve STPCascadedShadowMap for better handling of move construction.
    • STPCascadedShadowMap can 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 BaseVertex in STPIndirectCommand::STPDrawElement from uint to int to match the GL specification.
  • Avoid repetitive evaluation of end iteration in STPWorldPipeline.
  • Remove unused typedef STPLightIdentifier from STPScenePipeline.
  • Add STPPitchedDeviceMemory as another smart device memory object.
  • Convert encoding for README to UTF-8.