Physically based offline path tracer made in Vulkan with Ray Tracing Pipeline extension. It uses energy conserving BSSRDF with Diffuse, Dielectric, Metallic and Glass lobes + volume scattering. Renders can be saved as png images. It also features post processing effects and a denoiser.
- Windows 10 and newer.
- Either NVIDIA RTX 2000+ series or AMD RX 6000+ series to support all of the extensions below. You may check whether they're present on your device here, maybe it's possible to run on older hardware.
-
- VK_KHR_ray_query,
-
- VK_KHR_acceleration_structure,
-
- VK_KHR_ray_tracing_pipeline,
-
- VK_KHR_swapchain,
-
- VK_KHR_deferred_host_operations,
-
- VK_KHR_shader_clock,
-
- VK_KHR_external_memory_win32,
-
- VK_KHR_external_semaphore_win32,
-
- VK_KHR_external_fence_win32,
- Visual Studio 2022 (older versions might work but aren't tested).
- Download Vulkan SDK.
- Download PathTracer.zip from Releases.
- Unzip and run
PathTracer\PathTracer\PathTracer.exe
.
- Download Vulkan SDK.
- Run
git clone https://github.com/Zydak/Vulkan-Path-Tracer --recursive
. - Go to Releases and download Shaderc.zip
- Unzip and copy Shaderc libraries into
Vulkan-Helper/lib/shaderc/
. - Run
setup.bat
in main directory. - Open generated solution in Visual Studio.
BSSRDF implementation with Diffuse, Metallic, Dielectric, and Glass lobes alongside volumetric scattering. It uses Lambertian reflectance for diffuse surfaces and GGX for specular reflection and refraction made according to [Microfacet models for refraction through rough surfaces]. Specular reflection and refraction can also make use of Anisotropy that's implemented according to [Eric Heitz 2018] paper. Volumetric scattering is modeled with ratio tracking by doing a random walk using the Henyey-Greenstein phase function and Beer's law for realistic light transport through translucent materials and volumetrics, implemented according to [Production Volume Rendering 2017].
Energy compensation implemented according to [Turquin 2018] paper.
Compensation Off:
Compensation On:
Difference:
Compensation Off:
Compensation On:
Difference:
- HDR Environment Maps
- Environment map MIS
- Textures and Normal Maps
- Editor
- Loading your own scenes in .gltf .fbx and .obj format
- Editing scene materials in runtime
- Exporting renders into .PNG files
- Scene serialization
- Post Processing
- Bloom using Mip Maps
- Chromatic Aberration
- Exposure and many more
- Anti Aliasing
- Depth of Field effect with automatic focal length
- Image Denoising using Nvidia Optix Denoiser
- Camera controller made using quaternions
-
Metallic factor ranging from 0 to 1. Determines whether the surface is metallic or dielectric.
-
Anisotropy factor on metallic surface with roughness 0.5 ranging from 0 to 1.
-
Index of refraction (IOR) factor ranging from 1 to 3. Changes the strength of specular highlights on dielectric surfaces.
-
Specular Tint factor on dielectric surface ranging from 0 to 1. Gradually Tints the specular highlights to the surface color.
-
Transparency factor ranging from 0 to 1. Determines whether the material is able to refract light rays or not.
-
Roughness factor on transparent surface ranging from 0 to 1.
-
Index of refraction (IOR) factor on transparent surface ranging from 1 to 2. Determines how much the path of light is bent during refraction.
- Sampling the GGX Distribution of Visible Normals
- Microfacet Models for Refraction through Rough Surfaces
- Importance Sampling Microfacet-Based BSDFs using the Distribution of Visible Normals
- A Reflectance Model For Computer Graphics
- Practical multiple scattering compensation for microfacet models
- https://developer.nvidia.com/orca/amazon-lumberyard-bistro - Bistro
- https://sketchfab.com/3d-models/elven-ranger-statue-71aec2d9f7724ae09992435ce8ff7258 - Archer
- https://www.intel.com/content/www/us/en/developer/topic-technology/graphics-research/samples.html - Sponza
- https://www.blender.org/download/demo-files/ - Classroom
- https://sketchfab.com/3d-models/screaming-dragon-head-3d-print-5712b52618f743b193bdd39459099f25 - Screaming Dragon Head
- https://sketchfab.com/3d-models/dog-statue-49d97ca2fbf34f85b6c88ae8ebc7514f - Dog Statue
- https://github.com/mmacklin/tinsel - Ajax
- https://pbrt.org/scenes-v3 - Small Dragon
- https://pbrt.org/scenes-v3 - Coffee Cup
- https://www.blender.org/download/demo-files/ - Monster
- https://polyhaven.com/hdris - Env Maps
- https://polyhaven.com/a/ship_pinnace - Ship
- https://benedikt-bitterli.me/resources/ - Dragon
- https://wirewheelsclub.com/models/1965-ford-mustang-fastback/ - Mustang
- https://renderman.pixar.com/official-swatch - RenderMan teapot
- https://www.cgbookcase.com/ - Textures for teapots
- https://benedikt-bitterli.me/resources/ - Material Test Ball
- https://sketchfab.com/3d-models/cemetery-angel-miller-3b7e4e4a84f94f0d876e21e853eb8db8 - Angel
- https://sketchfab.com/3d-models/norse-valkyrie-a4b4ab11feb24b979fcd81013096fe63 - Valkyrie