Releases: vilbeyli/VQEngine
Releases · vilbeyli/VQEngine
VQE-v0.9.0 - FidelityFX: Stochastic Screen-Space Reflections, SPD, Denoiser
RELEASE NOTES
Features
Rendering
- FidelityFX Stochastic Screen Space Reflections (SSSR)
- FidelityFX Single-Pass Downsampler (SPD)
- FidelityFX Denoiser (DNSR)
- Motion Vectors
- Scene Render Visualization Modes
- Lit
- Depth
- Normals
- Roughness
- Metallic
- AO
- Motion Vectors
- Albedo
Engine
- Graceful exit with error reporting upon device lost instead of crashing
- Extended EngineSettings.ini: added EnvironmentMapResolution, Reflections options
- Improved shader compilation
- PIX can now debug SM6 shaders
- Extended support for DXC compiler flags
- Release/Debug shaders are now separately cached
- Added more built-in materials: Checkerboard_Glossy, Checkerboard_Rough, Checkerboard_Metallic, MetallicBlack_VerySmooth
Scenes
- Default scene: assigned PBR material to the ground, swapped cylinder with the boombox model, load an environment map
- Stress Test scene: crank up object count, add randomized materials with compile-time toggles
Bug Fixes
- Fixed RenderDoc not being able to attach / device lost upon launch
- Fixed build script failing with file paths with spaces in them
- Fixed shader include path not resolving correctly
- Fixed assertion when the window is minimized
VQE-v0.8.0 - ImGui UI & FidelityFX Super Resolution 1.0
RELEASE NOTES
Features
Renderer
- FidelityFX Super Resolution 1.0 integrated with minimal support
- EASU (Upscaling) & RCAS (Sharpening) passes with sharpness slider, presets and custom upscaling ratio between [0.5, 1.0]
- TAA, MipBias & HDR are NOT supported with this release and will be added at a later date
Engine
- Added UI using Dear ImGui
- Profiler, Graphics Options, Debug Panel and Scene Editor windows with various controls
- Updated camera controller and mouse capture behavior
- Left Click : Orbit Camera
- Right Click : 'FPS' Camera
- Mouse is now only captured when right or left click is held to operate the camera, and will stay uncaptured while interacting with the UI
- Removed pipelined Update+Render threads, merged them into a single Simulation thread
- This change is added to support the ImGui integration as ImGui didn't provide a deferred context without global state, which made the engine architecture incompatible with ImGui by resulting in a race condition when the update thread is writing into the global context that the render thread is reading to draw
- A preprocessor define
VQENGINE_MT_PIPELINED_UPDATE_AND_RENDER_THREADS
was added to toggle between the two architectures, although the separate update+render threads disable UI rendering
- Added frame stat collection
Bug Fixes
- Fixed the DownloadAssets.bat script after the texture website updated its URL for the assets
- VSync can sometimes add some frame delay
VQE-v0.7.0 - Multi-threaded command recording & frustum culling, SM6, Ambient Occlusion
Pre-release
RELEASE NOTES
Features
Renderer
- DXC / SM6.0 support
- Ambient Occlusion
- AMD FidelityFX - Combined Adaptive Compute Ambient Occlusion (CACAO)
Engine
- Multi-threaded command recording
- Bounding Boxes & Multi-threaded view frustum culling
- Add RGP & PIX markers
- Skip loading materials if they're not used in the scene
- Add image downsizing for Environment maps
Bug Fixes
- Black line at the bottom of the screen when CAS is enabled
VQE-v0.6.0 - Physically Based Rendering (PBR), Environment Maps & Image-based Lighting (IBL), AMD FidelityFX CAS
Pre-release
Release Notes
Features
- Forward Renderer w/ Lighting System
- Spot Lights (5x w/ shadows)
- Point Lights (5x w/ shadows)
- Directional Light (1x w/ shadows)
- PCF Shadows for all lights
- UE4's PBR Model Pipeline
- BRDF
- NDF : Trowbridge-Reitz GGX
- G : Smith
- F : Fresnel_Schlick / Fresnel_Gaussian
- Metallic / Roughness Maps
- Emissive Maps
- Built-in PBR Materials w/ textures from cgbookcase
- BRDF
- Environment maps
- Real-time Image-based lighting
- Cubemap convolutions for pre-filtered diffuse & irradiance maps
- Post Processing
- Added AMD's FidelityFX Contrast Adaptive Sharpening (CAS)
Known Issues
- Repeatedly changing scenes crashes due to the static heaps
- Alt+Enter might crash on some laptops
- VSync can sometimes add some frame delay
- Black bar at the bottom few pixels when CAS is switched on
Controls
Key | |
---|---|
WASD+EQ | Camera movement |
Page Up/Down | Change Environment Map |
1-4 | Change scenes 1 - Default Scene 2 - Sponza 3 - Geometry Test Scene 4 - Stress Test Scene |
Shift+R | Reload level |
C | Change scene camera |
V | Toggle VSync |
M | Toggle MSAA |
B | Toggle FidelityFX-CAS |
Alt+Enter | Toggle Fullscreen |
Esc | Release mouse |
See README.md for details.
VQE-v0.5.0 - Scene/Level System, GPU Event Markers, DPI-awareness, Model Loading (glTF, obj)
VQE-v0.5.0 - Scene/Level System, GPU Event Markers, DPI-awareness, Model Loading (glTF, obj)
Pre-release
Pre-release
VQE-v0.4.0 - HDR, Skybox, VSync, MSAA
Release Notes
Features
- HDR Display support w/ FP16 Swapchain & HDR10 Static Metadata
- HDR Environment Maps using HDRI Haven
- PostProcess: Reinhard Tonemapping & Gamma Correction
- MSAA & VSync support
Bug Fixes
- Mouse isn't captured when debug window is not initialized
- Window focus capturing mouse causes inconsistent behavior
Known Issues
VQE v0.3.0 - Keyboard/Mouse Input & Camera Controller
Release Notes
Features
- Keyboard/Mouse input handling
- First-Person Shooter Camera Controller
- Mouse Input using Raw input
- Improved Window behavior for Resizing, Alt+Tab & Alt+Enter
Fixed Issues
Known Issues
VQE v0.2.0 - Hello Cube!
Release Notes
Features
- Textures & Constant buffers
- Transformation pipeline (Model-View-Projection)
- Generic Geometry generator for various Vertex/Index Buffer types
- Loading Screen Rendering: 1 second 'loading' simulation by rendering a fullscreen triangle
- New Shaders
- Fullscreen triangle: requires only index buffer with values
{0, 1, 2}
- Hello-Cube: supports textures + transformation matrix
- Fullscreen triangle: requires only index buffer with values
Utilities
- Added Camera, Transform & Quaternion classes
- Added Timer class
- Added Image class to load common image formats, including HDR
- Supported Image formats:
.png
,.jpg
,.hdr
, etc.
- Supported Image formats:
Bug Fixes
- Memory leak on Window events (resize + fullscreen)
Known Issues
VQE v0.1.0 - Hello Triangle!
Release Notes
First version release of the modern VQEngine: v0.1.0 - Hello Triangle!
Features
Multi-threading
- 3 Independent threads
- Main Thread : Handles Windows events and buffers the events for consumption in other threads, ensuring seamless application behavior
- Update Thread : Simulates scene, prepares data for the Render Thread, doesn't run ahead more frames than the back buffer has.
- Render Thread: Picks up scene data from the Update Thread and issues draw commands
- Thread Pools as worker threads for the Update and Render thread for parallelizing workloads, scaled by available threads on the system.
DXGI Window Management & D3D12 Rendering
- 3 Display Modes supported
- Windowed
- Borderless Fullscreen
- Exclusive Fullscreen
- Multiple windows supported on multiple monitors
- Alt+Enter Fullscreen transitions for both Borderless & Exclusive modes
- Hello World Triangle rendering in D3D12 with synchronized Update & Render threads
Utilities
- Logging to File and a separate Console window
- Command-line parameters
- Configurable settings through
EngineSettings.ini
file inData/
folder next to the executable- Set resolution
- Set preferred monitor
- Set fullscreen window
- Set Debug window properties (visible, resolution, fullscreen, preferred monitor)
Automated Build & Testing
Build/PackageEngine.bat
to sync dependencies, generate project files, build in release mode and package the binaries for distributionBuild/GenerateProjectFiles.bat
to sync dependencies and generate project filesScripts/TestVQE.bat
to test runVQE.exe
for a specified number of frames (1000 default)
Known Issues
- Memory leak on Window events (resize + fullscreen). This'll be fixed on v0.2.0.