HIPRT-Path-Tracer

HIPRT & Orochi Monte Carlo Path Tracer


Overview

Physically based Monte Carlo path tracer written with the HIPRT and Orochi libraries.

HIPRT is AMD’s equivalent to OptiX. It allows the use of the ray tracing accelerators of RDNA2+ AMD GPUs and can run on NVIDIA devices as well (although it wouldn’t take advatange of RT cores) as it is not AMD specific.

The Orochi library allows the loading of HIP and CUDA libraries at runtime meaning that the application doesn’t have to be recompiled to be used on a GPU from a different vendor (unlike HIP which would require a recompilation + linking).


Features

Layered Principled BSDF:

  • Coat Microfacet GGX Layer + Anisotropy, Anisotropy Rotation, Medium Absorption & Thickness
  • On-the-fly Monte Carlo integration for energy compensation of interlayer clearcoat multiple scattering
  • SGGX Volumetric Sheen Lobe LTC Fit [Zeltner, Burley, Chiang, 2022]
  • Specular Microfacet GGX Layer
  • Oren-Nayar Diffuse BRDF Lobe
  • Metallic Microfacet GGX Layer + Anisotropy & Anisotropy Rotation + Double Roughness [Kulla & Conty, 2017]
  • Specular transmission BTDF + Beer Lambert Volumetric Absorption: [Burley, 2015]
  • Spectral dispersion using Cauchy’s equation
  • Multiple-scattering energy compensation for conductors (double metal layer), dielectrics (transmission layer) and glossy-diffuse (specular + diffuse layer) materials [Turquin, 2019]
  • Thin-film interference over dielectrics and conductors [Belcour, Barla, 2017]
  • Thin-walled model

Sampling

Other rendering features:

UI

  • Interactive ImGui interface
    • Asynchronous interface to guarantee smooth UI interactions even with heavy path tracing kernels
  • Interactive first-person camera
  • Different frame-buffer visualization (visualize the adaptive sampling heatmap, the denoiser normals / albedo, …)

Other features

  • Use of the [ASSIMP] library to support many scene file formats.
  • Multithreaded scene parsing/texture loading/shader compiling/BVH building/envmap processing/… for faster application startup times
  • Background-asynchronous path tracing kernels pre-compilation
  • Shader cache to avoid recompiling kernels unnecessarily

Gallery


Live YouTube Showcases

Material Editor

OIDN AOVs Quality

ReSTIR DI vs. RIS vs. MIS

Homogeneous Volumetric Absorption

ReSTIR DI & Dynamic Envmap

SGGX Volumetric Sheen Lobe LTC Fit

Conductors/Dielectrics Multiple Scattering Energy Compensation

Thin-film Iridescence Render [Belcour, Barla, 2017]

Spectral dispersion in glass


hiprt-path-tracer


Github

This project is open-source on Github: HIPRT-Path-Tracer