Zielon / PBRenderer

CPU Physically Based Path Tracer Engine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PBRenderer 2.0.0

Physically Based Renderer Engine

Engine for generating physically based renderings. The whole project is divided into two main parts; rasterizer and pbrenderer. The first part implements a few basic GLSL shaders for visualising normals with flat and smooth shading, additionally, mouse picking and normal ray casting is added. A user can fly around the scene freely using the following buttons: W, S, D, A and left mouse button. Finally, place the camera in a selected position in the world space and render an image using R or C button. The former has to be pressed to physically based render a scene and the latter to ray cast normals. The biggest part of this project is pbrenderer.

How to run:

To run the project Visual Studio is needed. Render images are saved in the folder output which is created in the repository root automatically. The example of a configuraiton file is in the folder with the same name.

Use vcpkg to install the following packages:

1) glad_x64-windows
2) glfw3_x64-windows
3) glm_x64-windows
4) stb_x64-windows
5) zlib_x64-windows
6) rapidjson_x64-windows

Run command to install all:
vcpkg install glad_x64-windows glfw3_x64-windows glm_x64-windows stb_x64-windows zlib_x64-windows rapidjson_x64-windows

Available integrators:

1) Whitted
2) Direct light
3) Path tracer with MIS

Available lights:

1) Area light
2) Point light
3) Environment light

Available materials:

1) Lambertian
2) Perfect specular
3) Perfect transmit
4) Plastic
5) Glass
6) Metal

Results:

It took around 10-15 minutes per image [8 threads].

output_1

Material: gold
Distribuion: GGX with alpha 0.15
Resolution: [900x700]
SPP: 1536
Rays max depth: 10

output_1

Material: plastic
Distribuion: GGX with alpha 0.55
Lambertian material + Microfacets reflection
Resolution: [900x700]
SPP: 1536
Rays max depth: 10

output_1

Material: glass
IOR 1.5
Resolution: [900x700]
SPP: 3000
Rays max depth: 10

output_1

Material: plastic and glass sphere
IOR 1.5
Resolution: [900x700]
SPP: 3100
Rays max depth: 10

References:

[0] pbr-book (3ed-2018)

About

CPU Physically Based Path Tracer Engine

License:BSD 2-Clause "Simplified" License


Languages

Language:C++ 97.8%Language:GLSL 2.2%