Home

Awesome

VQEngine

VQEngine is a DirectX12 renderer for prototyping of rendering techniques and experimenting with cutting edge technology.

Join the VQE Discord Channel for graphics, math and engine chatter!

Discord Banner 2

Screenshots

<p align="center"> <sub><i>Data-driven (XML) Scenes & glTF Model Loading, HDRI Environment Maps, UE4's PBR model w/ IBL, ImGui UI & debug drawing, AMD FidelityFX CACAO, CAS, FSR1, SSSR, DNSR, SPD </i></sub> </p>

Features

See Releases to download the source & pre-built executables.

Graphics

Display

Engine

Build

Make sure to have pre-requisites installed

To download the PBR & HDRI textures, run

Then, run one of the build scripts in Build/ folder,

Run

Make sure to have installed

Double click VQE.exe.

Or, if you're using a terminal,

Controls

Key
WASD+EQCamera movement
Page Up/DownChange Environment Map
1-4Change scenes <br>1 - Default Scene <br>2 - Sponza <br>3 - Geometry Test Scene <br>4 - Stress Test Scene
Shift+RReload level
CChange scene camera
VToggle VSync
MToggle MSAA
GToggle tonemapping gamma
JToggle FidelityFX-SuperResolution1
BToggle FidelityFX-CAS
NToggle object bounding boxes
Shift+NToggle mesh bounding boxes
Alt+EnterToggle Fullscreen
EscRelease mouse

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
<br/>
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 ParameterDescription
-LogConsoleLaunches 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
-TestLaunches 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
-FullScreenLaunches in fullscreen mode
-WindowedLaunches in windowed mode
-VSyncEnables VSync
-VSync=<bool>Sets Specified VSync State
-AntiAliasing or -AAEnables MSAA
-TripleBufferingInitializes SwapChain with 3 back buffers
-DoubleBufferingInitializes SwapChain with 2 back buffers

Note: Command line parameters will override the EngineSettings.ini values.

Scripts

File
GenerateSolutions.batWhat 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.batWhat 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 Clean and copy the binaries into Build/_artifacts folder
TestVQE.batWhat it does <br/> - Runs VQE.exe with testing parameters, making the engine exit after rendering specified number of frames (1000 default). <br/><br/> Flags <br/> -Debug: Tests the Debug build in addition to the Release build <br/>

3rd-Party