VQEngine
Multi-threaded DirectX12 renderer w/ HDR, PBR & Multi-monitor support
Install / Use
/learn @vilbeyli/VQEngineREADME
![]()
| master | dev |
| :---: | :---: |
| |
|
VQEngine
VQEngine is a multi-threaded DirectX12 renderer for prototyping of rendering techniques and experimenting with cutting edge technology.
See Releases to download the source & pre-built executables.
Screenshots







Features
Graphics
- Physically-based Rendering (PBR)
- BRDF
- NDF : Trowbridge-Reitz GGX
- G : Smith
- F : Fresnel_Schlick / Fresnel_Gaussian
- Image-based Lighting (IBL) w/ prefiltered environment cubemaps from HDRI Haven
- Load-time diffuse & specular irradiance cubemap convolution
- BRDF
- Lighting & Shadow maps
- Point / Spot / Directional Lights
- PCF Shadows
- Reflections
- Ambient Occlusion
- Anti Aliasing
- MSAA x4
- PostProcess
- FidelityFX - Single Pass Downsampler (SPD)
- Tonemapping & Gamma correction
- FidelityFX - Contrast Adaptive Sharpening (CAS)
- FidelityFX - Super Resolution 1.0
- Async Compute & Copy queue support
- Tessellation Pipeline
- Triangle & Quad domains
Display
- HDR display support with scRGB HDR pipeline

- Multiple window & monitor support
- Refresh Rate
- Custom
- Auto (1.33 x monitor refresh rate)
- Unlocked
- VSync
- Alt+Enter Borderless Fullscreen
Engine
- Multi-threading
- Worker threads
- Parallel command list recording
- Frustum Culling
- Asset loading
- PSO & Shader compilation
- Main + Simulation threads to decouple OS events from the update loop
- Worker threads
- glTF 2.0 model loading
- Shader system
- Shader cache
- Multi-threaded shader compilation
- Shader Model 5.0 (DXBC) & 6.0 (DXIL)
- Editor for Materials, Lights & Transforms
- Automated build & testing scripts


Build
Make sure to have pre-requisites installed
- CMake 3.24
- Visual Studio 2022
- Windows 10 SDK 10.0.20348 OR Windows 11 SDK 10.26100.0
To download the PBR & HDRI textures, run
Scripts/DownloadAssets.bat
Then, run one of the build scripts in Build/ folder,
GenerateSolutions.batto build from source with Visual StudioVQE.slncan be found inBuild/SolutionFilesdirectory
PackageEngine.batto build and package the engine in release mode and open_artifactsfolderVQE.execan be found inBuild/_artifactsdirectory
Run
Make sure to have installed
- MSVC v143 - VS 2022 C++ x64/x86 build tools
- A DX12-capable GPU
Double click VQE.exe.
Or, if you're using a terminal
VQE.exe -LogConsolefor logging displayed on a consoleVQE.exe -LogFile="FileName.txt"to write out to a file.
Controls
| Key | | | :--: | :-- | | WASD+EQ | Camera movement | | Left Click | Pick object | | Right Click | Hold to look around | | F1 | Toggle Scene Controls | | F2 | Toggle Profiler | | F3 | Toggle Settings | | F4 | Toggle Editor | | Page Up/Down | Change Environment Map | | 1-4 | Change scenes <br>1 - Default Scene <br>2 - Sponza <br>3 - Geometry Test Scene <br>4 - Stress Test Scene | | Shift+R | Reload level | | C | Change scene camera | | V | Toggle VSync | | M | Toggle MSAA | | G | Toggle tonemapping gamma | | J | Toggle FidelityFX-SuperResolution1 | | B | Toggle FidelityFX-CAS | | N | Toggle object bounding boxes | | Shift+N | Toggle mesh bounding boxes | | Alt+Enter | Toggle Fullscreen |
Settings
VQE can be configured through Data/EngineConfig.ini file
| Graphics Settings | |
| :-- | :-- |
| ResolutionX=<int> | Sets application render resolution width |
| ResolutionY=<int> | Sets application render resolution height |
| VSync=<bool> <br/> | Toggles VSync based on the specified <bool> |
| AntiAliasing=<bool> | Toggles MSAA based on the specified <bool> |
| MaxFrameRate=<int> | Sets maximum frame rate to the specified <int> |
| HDR=<bool> | Toggles HDR swapchain & HDR display support |
| Engine | |
| :-- | :-- |
| Width=<int> | Sets application main window width |
| Height=<int> | Sets application main window height |
| DisplayMode=<Windowed/Fulscreen> | Sets Sets application main window mode: Windowed or Fullscreen |
Command Line
VQE supports the following command line parameters:
| CMD Line Parameter | Description |
| :-- | :-- |
| -LogConsole | Launches a console window that displays log messages |
| -LogFile=<string> | Writes logs into an output file specified by %FILE_NAME%. <br/><br/> Example: VQE.exe -LogFile=Logs/log.txt <br/>will create Logs/ directory if it doesn't exist, and write log messages to the log.txt file
| -Test | Launches the application in test mode: <br/> The app renders a pre-defined amount of frames and then exits. |
| -TestFrames=<int> | Application runs the sepcified amount of frames and then exits. <br/>Used for Automated testing. <br/><br/> Example: VQE.exe -TestFrames=1000 |
| -W=<int> <br/> -Width=<int> | Sets application main window width to the specified amount |
| -H=<int> <br/> -Height=<int> | Sets application main window height to the specified amount |
| -ResX=<int> | Sets application render resolution width |
| -ResY=<int> | Sets application render resolution height |
| -FullScreen | Launches in fullscreen mode |
| -Windowed | Launches in windowed mode |
| -VSync | Enables VSync |
| -VSync=<bool> | Sets Specified VSync State |
| -AntiAliasing or -AA | Enables MSAA |
| -TripleBuffering | Initializes SwapChain with 3 back buffers |
| -DoubleBuffering | Initializes SwapChain with 2 back buffers |
Note: Command line parameters will override the EngineSettings.ini values.
Scripts
| File | |
| :-- | :-- |
| ProjectFiles.bat | What it does <br/>- Initializes the submodule repos<br/> - Runs CMake to generate visual studio solution files in Build/SolutionFiles directory <br/> - Launches Visual Studio <br/> <br/> Flags <br/> - noVS : Updates/Generates VQE.sln without launching a Visual Studio instance <br/><br/> Example : GenerateSolutions.bat -noVS <br/> while VS is open to update solution files after modifying CmakeLists.txt without closing/relaunching VS
| PackageEngine.bat | What it does <br/> - Runs GenerateSolutions.bat if the visual studio solution doesn't exist <br/> - Builds the engine in Release configuration <br/> - Moves build output into Build/_artifacts folder <br/> <br/> Flags <br/> -Clean : Runs Clean on VQE.sln projects before building <br/> -DebugOnly : Builds the Debug binaries only <br/> -Debug : Builds Debug binaries in addition to Release <br/> -RelWithDebInfo : Builds the Release binaries with Debug info in addition to Release <br/><br/> Note: Release build is always on by default, unless -DebugOnly is specified <br/><br/> *Example: PackageEngine.bat -Clean -Debug -RelWithDebInfo <br/>will build all configurations after running Cle
Related Skills
openhue
334.9kControl Philips Hue lights and scenes via the OpenHue CLI.
sag
334.9kElevenLabs text-to-speech with mac-style say UX.
weather
334.9kGet current weather and forecasts via wttr.in or Open-Meteo
tweakcc
1.4kCustomize Claude Code's system prompts, create custom toolsets, input pattern highlighters, themes/thinking verbs/spinners, customize input box & user message styling, support AGENTS.md, unlock private/unreleased features, and much more. Supports both native/npm installs on all platforms.
