Skip to content

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

License

Notifications You must be signed in to change notification settings

vilbeyli/VQEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VQE

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

VQE aims to support

  • Automated build & testing
  • Multi-threaded, highly parallel execution
    • Update & Render Threads
    • ThreadPool of worker threads
  • Multiple monitors
  • HDR display support (WIP)
  • Real-time and offline Ray Tracing (WIP)

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

Build

Make sure to have pre-requisites installed

Then, run 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
    • VQE.exe can be found in Build/_artifacts directory

Run

VQE.exe can be configured through a settings file EngineSettings.ini in Data/ folder next to it.

It also supports some command line parameters.

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
-VSync Enables VSync (TO BE IMPLEMENTED)
-TripleBuffering Initializes SwapChain with 3 back buffers
-DoubleBuffering Initializes SwapChain with 2 back buffers

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>
(TO BE IMPLEMENTED)
Toggles VSync on/off based on the specified <bool>

Engine
Width=<int> Sets application main window width
Height=<int> Sets application main window height

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