Skip to content

Latest commit

 

History

History
183 lines (136 loc) · 8.17 KB

README.md

File metadata and controls

183 lines (136 loc) · 8.17 KB

VQE

VQE is VQEngine: A DX12 rewrite of VQEngine-DX11 for fast prototyping of rendering techniques and experimenting with cutting-edge technology.

Join the VQE Discord Channel for rendering, graphics and engine architecture discussions!

Discord Banner 2

Screenshots

Data-driven (XML) Scenes & glTF Model Loading, HDRI Environment Maps, UE4's PBR model w/ IBL

Features

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

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
      • Load-time diffuse & specular irradiance cubemap convolution
  • Lighting & Shadow maps
    • Point Lights
    • Spot Lights
    • Directional Light
    • PCF Shadow Maps for Point/Spot/Directional lights
  • HDR Environment Maps from HDRI Haven
  • Anti Aliasing
    • MSAA x4
  • PostProcess

Display

  • HDR10 display support
  • Multiple window & monitor support
  • Refresh Rate
    • Custom
    • Auto (1.33 x monitor refresh rate)
    • Unlocked
  • VSync
  • Alt+Enter Borderless Fullscreen

Engine

Build

Make sure to have pre-requisites installed

To download the PBR & HDRI textures, run

  • Scripts/DownloadAssets.bat

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

  • GenerateSolutions.bat to build from source with Visual Studio
    • VQE.sln can be found in Build/SolutionFiles directory
  • PackageEngine.bat to build and package the engine in release mode and open _artifacts folder
    • VQE.exe can be found in Build/_artifacts directory

Run

Make sure to have installed

Double click VQE.exe.

Or, if you're using a terminal,

  • VQE.exe -LogConsole for logging displayed on a console
  • VQE.exe -LogFile="FileName.txt" to write out to a file.

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

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>
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%.

Example: VQE.exe -LogFile=Logs/log.txt
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:
The app renders a pre-defined amount of frames and then exits.
-TestFrames=<int> Application runs the sepcified amount of frames and then exits.
Used for Automated testing.

Example: VQE.exe -TestFrames=1000
-W=<int>
-Width=<int>
Sets application main window width to the specified amount
-H=<int>
-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
GenerateSolutions.bat What it does
- Initializes the submodule repos
- Runs CMake to generate visual studio solution files in Build/SolutionFiles directory
- Launches Visual Studio

Flags
- noVS : Updates/Generates VQE.sln without launching a Visual Studio instance

Example : GenerateSolutions.bat -noVS
while VS is open to update solution files after modifying CmakeLists.txt without closing/relaunching VS
PackageEngine.bat What it does
- Runs GenerateSolutions.bat if the visual studio solution doesn't exist
- Builds the engine in Release configuration
- Moves build output into Build/_artifacts folder

Flags
-Clean : Runs Clean on VQE.sln projects before building
-DebugOnly : Builds the Debug binaries only
-Debug : Builds Debug binaries in addition to Release
-RelWithDebInfo : Builds the Release binaries with Debug info in addition to Release

Note: Release build is always on by default, unless -DebugOnly is specified

Example: PackageEngine.bat -Clean -Debug -RelWithDebInfo
will build all configurations after running Clean and copy the binaries into Build/_artifacts folder
TestVQE.bat What it does
- Runs VQE.exe with testing parameters, making the engine exit after rendering specified number of frames (1000 default).

Flags
-Debug: Tests the Debug build in addition to the Release build

3rd-Party