# Physically based rendering Path Tracer in Unity3D using compute shader

Unity 2018.3.7f1 (win10 64-bit)

## Material parameters:

- albedo
- specular (control the specular high light)
- metallic
- roughness
- specTrans (control transparency of the material. This parameter is to blend metallic BRDF with dielectricc BSDF and it is taken from Disney’s BSDF)

form Extending the Disney BRDF to a BSDF with Integrated Subsurface Scattering

## Features:

- Path-Traced Physically based rendering based on Monte Carlo integration
- PBR BRDF and PBR BTDF
- Physically based parameters
- Hemisphere Sampling, importance sampling GGX

## Principle:

### Rendering Equation

### Monte Carlo Integration

### Pbr BRDF

This demo used cook-torrance BRDF. The choice of D,G,F term refers to the PBR implementation in UE4.

Formula Derivation

### Pbr BSDF = BRDF + BTDF

The BSDF/BTDF used in this demo is from Walter’s paper Microfacet Models for Refraction through Rough Surfaces

**Notice!** This BTDF is not reciprocal, be careful about the direction!

Formula Derivation

## Reference:

GPU Path Tracing in Unity – Part 2

Rendering Equation

Monte Carlo Methods in Practice

蒙特·卡罗(Monte Carlo)积分详解

Reflection, Refraction (Transmission) and Fresnel

Webgl中采用PBR的实时光线追踪

Learnopengl

Real Shading in Unreal Engine 4

基于物理着色（一）

Microfacet Models for Refraction through Rough Surfaces

Microfacet models for refection and refraction

Extending the Disney BRDF to a BSDF with Integrated Subsurface Scattering Extending the Disney BRDF to a BSDF with Integrated Subsurface Scattering

Disney Principled BRDF实现笔记

Cook-Torrance BRDF

Microfacet Models

Surface Reflection: Physical and Geometrical Perspectives

[Advanced Global Illumination]

How Is The NDF Really Defined?

ENERGY CONSERVATION IN GAMES

Adopting a physically based shading model