Skip to content

piotrprzybyszdev/Path-Tracing

Repository files navigation

Path Tracing

Path Tracer written in Vulkan for an engineering thesis.

Requirements

To run the Debug version of the application on Windows, you must install the "shader toolchain debug symbols" through the Vulkan SDK installer.

On Linux, you also must install the dependencies of the GLFW library.

Build

To build the project, execute the following commands:

git clone https://github.com/piotrprzybyszdev/Path-Tracing.git --recursive --shallow-submodules
cd Path-Tracing
cmake -S . -B build

Build files for the default build system of your platform should generate.

Installing Scenes

To install additional scenes, you should append to the cmake command: -DASSETS="<ASSET_NAME1>;<ASSET_NAME2>;...".
Some scenes are composed of separate components. In that case, you can also install components individually.

  • Full scene: INTEL_SPONZA_FULL (all of the below will be installed)
  • Intel Sponza Main Component - INTEL_SPONZA_MAIN (3.9 GB zip)
  • Intel Sponza Curtains Component - INTEL_SPONZA_CURTAINS (0.8 GB zip) alt text
  • UE4_SUN_TEMPLE (0.3 GB zip) alt text
  • AMAZON_BISTRO (0.9 GB zip) alt text

Configuration

The project can be compiled in 4 different configurations, each of which enables different suboptions. Each suboption can also be enabled individually.

To specify a configuration, add the following flag to the cmake command from the build section: -DCMAKE_BUILD_TYPE=<CONFIG>.
The default configuration is Release.

Release Profile Debug Trace
OPTIMIZE_SHADERS
OPTIMIZE_SCENE
SHADER_DEBUG_INFO
VALIDATION_LAYERS
ASSERTS
LOG_TO_FILE
LOG_LEVEL_* INFO INFO DEBUG TRACE
MAX_TEXTURE_MEMORY_BUDGET_ABSOLUTE_MIB 1024 1024
MAX_TEXTURE_LOADER_THREADS 2 2
MAX_BUFFERS_PER_LOADER_THREAD 1 1
MAX_SHADER_COMPILATION_THREADS 2 2
MAX_SHADER_COMPILATION_BATCH_SIZE 32 32 16 16

Other configuration options:

  • MAX_SHADER_INCLUDE_DEPTH
  • MAX_SHADER_INCLUDE_CACHE_SIZE
  • DISABLE_SHADER_PRECOMPILATION
  • MAX_PIPELINE_VARIANT_CACHE_SIZE
  • MAX_STAGING_BUFFER_SIZE_MIB
  • MAX_TEXTURE_MEMORY_BUDGET_VRAM_PERCENT

For example, to compile in Profile mode but with logging to a file at trace log level and max shader include depth set to 1, you should append to the cmake command: -DCMAKE_BUILD_TYPE=Profile -DPATH_TRACING_CONFIG="CONFIG_LOG_TO_FILE;CONFIG_LOG_LEVEL_TRACE;CONFIG_MAX_SHADER_INCLUDE_DEPTH=1".

To revert the configuration changes to the default run, cmake again with -DPATH_TRACING_CONFIG="".

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published