VQEngine Versions Save

Multi-threaded DirectX12 renderer w/ HDR, PBR & Multi-monitor support

0.9.0-pre-release

1 year ago

RELEASE NOTES

unknown

Features

Rendering

VQEngine-Viz

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

0.8.0-pre-release

2 years ago

RELEASE NOTES

image

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

0.7.0-pre-release

2 years ago

RELEASE NOTES

FFX-CACAO-Sponza AMD FidelityFX CACAO

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

0.6.0-pre-release

3 years ago

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
  • Environment maps
    • Real-time Image-based lighting
    • Cubemap convolutions for pre-filtered diffuse & irradiance maps
  • Post Processing

Known Issues

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.

0.5.0-pre-release

3 years ago

Release Notes

Features

  • XML Scene/Level files & Scene loading
  • VQE is now DPI-aware and will scale properly on high DPI displays
  • PIX GPU Markers
  • Multithreaded Model loading with assimp
    • .glTF
    • .obj

Bug Fixes

Known Issues

0.4.0-pre-release

3 years ago

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

Known Issues

0.3.0-pre-release

3 years ago

Release Notes

Features

  • Keyboard/Mouse input handling
  • First-Person Shooter Camera Controller
  • Improved Window behavior for Resizing, Alt+Tab & Alt+Enter

Fixed Issues

Known Issues

0.2.0-pre-release

3 years ago

Release Notes

Features

Utilities

Bug Fixes

  • Memory leak on Window events (resize + fullscreen)

Known Issues

0.1.0-pre-release

3 years ago

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 in Data/ 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 distribution
  • Build/GenerateProjectFiles.bat to sync dependencies and generate project files
  • Scripts/TestVQE.bat to test run VQE.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.