Skip to content

A CPU based Renderer for personal interest and education.

Notifications You must be signed in to change notification settings

bobhansky/TutuRenderer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A CPU based offline Renderer for personal interest and education.

Last Update: 7/4/2024

Features

  • Integrator
    • Path Tracing
    • Light Tracing
    • Bidirectional Path Tracing (BDPT)
         Stick closely to veach97. Learning and Coding refer a lot to 
         https://rendering-memo.blogspot.com/2016/03/bidirectional-path-tracing-1-kickoff.html
          
         0. No t == 0 case 
         1. Shading normal asymmetric Bsdf correction ✅
         2. Some problem with Microfacet Transmissive material (when path length <= 5 is fine) ❌ TODO
         
  • Matertial:
    • Lambertain Diffuse (cos weighted)
    • Microfacet Reflection and Transmittance (Cook Torrance Model with GGX distribution).
    • Perfect Reflective
    • Perfect Refractive.
    • Unlit. (incompatible with bdpt)
  • Sampling
    • Importance Sampling
    • Multiple Importance Sampling
    • Next Event Estimation
  • Texture Mapping
    • Albedo/Diffuse Map
    • Normal Map
    • Roughness Map
    • Metallicness Map
  • Acceleration
    • BVH default (midpoint)
    • CPU Multi-Threading (std::thread)
  • Post Processing
    • Bloom
    • HDR
    • Tone Mapping / Gamma Correction
  • Russian Roulette (Throughput) in path tracing

Todo List

  • Microfacet refractive/translucent ✅

  • BDPT ✅

  • don't rely on .ppm image file

  • 6/29/2024:

    1.better config file
    
    2.image based lighting
    
    3.Subsurface scattering
    
    4.SAH BVH
    

Usage

      $ ./PathTracing.exe config.txt
   

Develop Environment: MSVC C++17, Visual Studio 2022

cmakelist or makefile of the latest version is TO-DO in the future

Refer to https://github.com/bobhansky/WhittedStyle_Raytracer/blob/main/README.md for more instruction on configuration file.

Sample Result

Cornell Box with 512 samples per pixel


Contrast

left: Whitted style Ray Tracing (shading with Blinn Phong Model)
right: Path Tracing
alt text


others

alt text

upperleft: BSDF sampling                                 upperright: light Sampling

lowerleft: NEE only                                      lowerright: NEE + MIS

About

A CPU based Renderer for personal interest and education.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published