[FEAT] Chapter 11 is done.

This commit is contained in:
2024-03-12 22:24:57 +01:00
parent e54916f82e
commit 2dd9475c04
4 changed files with 11 additions and 2 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -258,7 +258,7 @@ const double IntersectionData::n2(void) const
/* ------------------------------------------------------------------------- */
double IntersectionData::schlick(void)
double IntersectionData::schlick(void) const
{
double the_cos, the_r0;

View File

@@ -78,7 +78,7 @@ namespace Raytracer
void set_n2(double an_n2);
const double n2(void) const;
double schlick(void);
double schlick(void) const;
private:
bool m_is_inside;

View File

@@ -167,8 +167,17 @@ Color World::shade_hit(const IntersectionData &an_intersection_data, uint32_t a_
Shape *the_object = an_intersection_data.object();
Color the_surface = the_object->material().lighting(the_object, m_light, an_intersection_data.over_point(),
an_intersection_data.eyev(), an_intersection_data.normalv(), the_shadowed);
Color the_reflected = reflected_color(an_intersection_data, a_remaining);
Color the_refracted = refracted_color(an_intersection_data, a_remaining);
Material &the_material = an_intersection_data.object()->material();
if ((the_material.reflective() > 0) && (the_material.transparency() > 0))
{
double the_reflectance = an_intersection_data.schlick();
return the_surface + (the_reflected * the_reflectance) + the_refracted * (1 - the_reflectance);
}
return the_surface + the_reflected + the_refracted;
}