Skip to content

Releases: KTStephano/StratusGFX

v0.10.3

04 Aug 08:07
3dd19b1
Compare
Choose a tag to compare
v0.10.3 Pre-release
Pre-release
  • Frustum culling is now done for all views to improve performance -> camera, cascaded shadow maps, and each direction separately for point lights
  • Better check when entities are removed to determine if a light needs to be invalidated and updated

v0.10.2

02 Aug 07:09
4f911ce
Compare
Choose a tag to compare
v0.10.2 Pre-release
Pre-release
  • GI occlusion minimum weight can now be set by application. This has the effect of brightening indirect shadowed regions nearby VPLs.
  • GI now updates areas that are closest to the camera first when possible.
  • GI now supports improved (but still very low resolution) indirect specular reflections.
  • Denoising quality has been increased slightly which also caused a slight reduction in performance.
  • Fixes some bugs with denoising disocclusion test.

v0.10.1

27 Jul 10:37
1d16f3b
Compare
Choose a tag to compare
v0.10.1 Pre-release
Pre-release
  • Adds Async<void> for parallel tasks that don't need to return anything
  • Adds StackAllocator and StackBasedPoolAllocator -> StackBasedPoolAllocator is designed to be used with C++ standard containers
  • Refactors renderer frontend/backend to allocate short-lived per-frame objects from a 128 mb (size in bytes configurable by the application) stack of scratch memory that is cleared at the end of each frame
  • Splits build into Standard Build and Development Build options each with their own instructions in the README - Standard Build is for quickly compiling everything in order to run the examples whereas Development Build is for anyone who wants to modify the source code

v0.10.0

25 Jul 09:41
54496f7
Compare
Choose a tag to compare
v0.10.0 Pre-release
Pre-release

In this release the following changes were made:

  • Global illumination was overhauled to enable higher quality indirect lighting and support for dynamic time of day
  • Skybox colors can be captured by VPLs as part of global illumination
  • Image denoising was added based on inspiration from ReSTIR and SVGF
  • Temporal Anti-Aliasing (TAA) was added: default mode is to run FXAA+TAA together, but one or the other can be run by themselves or both disabled
  • Emission mapping was added
  • Better LOD generation and selection was added
  • Cornell Box and Junk Shop examples were added
  • Various engine-level changes including TypedGpuBuffer and better way of generating and updating draw command buffers
  • Camera can perform full mouse look instead of being locked to only Y-axis rotation
  • More configuration options including ability to specify CSM resolution, bloom on/off, taa on/off, fxaa on/off and much more
  • Additional support for Debian and Arch Linux distros has been added (thanks to @deccer who tested it and contributed some changes along with a few other people too!)
  • Improved async loading/streaming of model and texture data
  • All point shadow maps have been moved to large cubemap atlases/arrays with lights being added or evicted as needed

v0.9.4

29 Mar 06:13
Compare
Choose a tag to compare
v0.9.4 Pre-release
Pre-release

Includes everything from 0.9.3 with the following additions:

  • Engine no longer crashes when a model fails to load
  • Engine performance no longer crashes when textures fail to load
  • License has been set to MPL 2.0 and first public (pre-release) is done!

v0.9.3

28 Mar 04:25
60987a5
Compare
Choose a tag to compare
v0.9.3 Pre-release
Pre-release

MPL2.0.md

Note: For versions 0.9.4 downto 0.1 the license has been set to MPL 2.0 now that the repo is public. License is attached.

Same as v0.9.2 with the following additions:

  • GBuffer components were almost all reduced in precision to save on space and memory bandwidth
  • Position texture in GBuffer was removed in favor of reconstructing world space position from depth
  • Fixes bug where tiles along the top of the screen weren't being processed for GI

v0.9.2

27 Mar 09:02
0a62ab2
Compare
Choose a tag to compare
v0.9.2 Pre-release
Pre-release

MPL2.0.md

Note: For versions 0.9.4 downto 0.1 the license has been set to MPL 2.0 now that the repo is public. License is attached.

Same as v0.9.1 with the following additions:

  • Slight improvement to quality of GI when using VPLs
  • Better parallelizes loading of models so that loading times could be majorly reduced from what they were

v0.9.1

20 Mar 06:07
22bdb30
Compare
Choose a tag to compare
v0.9.1 Pre-release
Pre-release

MPL2.0.md

Note: For versions 0.9.4 downto 0.1 the license has been set to MPL 2.0 now that the repo is public. License is attached.

Same as v0.9.0 except it contains a hotfix for a major performance issue that was not present when the tech demo was made.

v0.9.0

15 Mar 05:39
80174f8
Compare
Choose a tag to compare
v0.9.0 Pre-release
Pre-release

MPL2.0.md

Note: For versions 0.9.4 downto 0.1 the license has been set to MPL 2.0 now that the repo is public. License is attached.

Everything from the previous release plus:

  • VPL global illumination maintains better performance by reducing memory bandwidth and using 4x4 pixel tiles
  • Switch to new PBR model described in the Google Filament paper (uses Disney BRDF)
  • Rewrite of the old deferred lighting + shadowing to use bindless textures and #ifdefs instead of if-statements to improve performance
  • Added new example scenes which were part of the YouTube tech showcase => Intel Sponza, San Miguel 2.0, Bistro, Bathroom, Warehouse
  • Added fog rendering
  • Added basic LOD generation and selection
  • Added GPU view frustum culling based on AABBs
  • Added FXAA
  • Improves frame pacing (still probably more work to do)
  • Adds basic punch-through transparency
  • Better scheduling of point light and virtual point light updates so none are ever neglected
  • Removes old resources/ folder (create Resources/ symlink to Dropbox when cloning fresh)
  • Moves shaders into Source/ folder

v0.8.0

15 Feb 10:04
3cca1c1
Compare
Choose a tag to compare
v0.8.0 Pre-release
Pre-release

MPL2.0.md

Note: For versions 0.9.4 downto 0.1 the license has been set to MPL 2.0 now that the repo is public. License is attached.

Everything from the previous release plus:

  • Addition of both thread safe and thread unsafe pool allocators
  • Window and Input handling have been moved out of the renderer into their own classes
  • GL context initialization and other core GPU initialization has been moved to new GraphicsDriver class
  • Switch to Entity-Component-System style of structure for majority of entities (pool allocator used for components)
  • Refactoring of example code and renderer to make use of entities and entity processes
  • Addition of GpuMeshAllocator which allows for all mesh and index data to be merged into two global GPU buffers
  • Switch to Programmable Vertex Pulling in shaders so that mesh data can be pulled from the global GPU buffer manually
  • Switch to bindless texturing for VPL shadow maps and forward rendered material system
  • Addition of GpuCommandBuffer which allows for renderer frontend to create draw calls (opens up possibility of multithreaded draw call creation in the future)
  • Renderer refactored to make use of merged meshes, bindless textures and GpuCommandBuffer to merge majority of draw calls into just a handful of glMultiDrawElementsIndirect calls (this greatly reduces overhead of interfacing with API during each frame)
  • Virtual Point Light Global Illumination performance has been improved by enforcing no more than 16 VPLs per pixel chosen based on world distance between light and surface pixel represents
  • Virtual Point Lights only compute diffuse lighting (no longer specular) and improvements have been made to prevent excessive brightening of surfaces closes to VPL