This week I will implement BRDF for my ray tracer. BRDF defines how light is reflected at an opaque surface.
Now We have seven new models.
- Blinn-Phong
- Modified Blinn-Phong
- Normalized Modified Blinn-Phong
- Phong
- Modified Phong
- Normalized Modified Phong
- Torrance-Sparrow
Summary :
To implement this part I added new section to materials and shading class.
Each material has a brdf struct if it has brdf feature. In brdf structure we have brdf type and exponent.
In previous parts we only have blinn phong shading. We calculate half vector and find the color. Now we have different formulas for each algorithm. When we call blinn phong, I calculate color according to enum type.
Each model has different approach. Each of them we can find a final equation.
Blinn-Phong :kd+ kscosp(αr ) / cos θi
Modied Blinn-Phong : kd+ kscosp(αr )
Normalized Modified Blinn-Phong : kd / π + ks * cosp(α) * (p+8) / 8π
Phong : kd+ ks *cosp(β) / cos θi
Modified Phong: kd+ ks *cosp(β)
Normalized Modified Phong: kd/ π + ks*cosp(β) * (p+2) / 2π
Torrance-Sparrow: kd / π + ks * D(α) * F(Φ) * G(wi,wo) / 4cos θicos(Φ)
Let's start with BlinnPhong
Modified Blinn-Phong
0.655s
Normalized Modified Blinn-Phong
Yorumlar
Yorum Gönder