[WIP] Add reflective parameter into material

This commit is contained in:
NADAL Jean-Baptiste
2024-03-05 17:01:38 +01:00
parent 17a75a841d
commit 41ea86d3ec
24 changed files with 184 additions and 91 deletions

View File

@@ -32,3 +32,41 @@
using namespace Raytracer;
/* ------------------------------------------------------------------------- */
SCENARIO("Reflectivity for the default material", "[features/materials.feature]")
{
GIVEN("m <- material()")
{
Material m;
THEN("m.reflective = 0.0")
{
REQUIRE(m.reflective() == 0);
}
}
}
/* ------------------------------------------------------------------------- */
SCENARIO("Precomputing the reflection vector", "[features/intersections.feature]")
{
GIVEN("shape <- plane()")
{
Plane shape;
AND_GIVEN("r <- ray(point(0, 1, -1), vector(0, -sqrt(2)/2, sqrt(2)/2))")
{
Ray r(Tuple::Point(0, 1, -1), Tuple::Vector(0, -sqrt(2) / 2, sqrt(2) / 2));
AND_GIVEN("i <- intersection(sqrt(2), shape)")
{
Intersection i(sqrt(2), &shape);
WHEN("comps <- prepare_computation(i, r)")
{
IntersectionData comps = i.prepare_computations(r);
THEN("comps.reflectv = vector(0, sqrt(2) / 2, sqrt(2) / 2)")
{
REQUIRE(comps.reflectv() == Tuple::Vector(0, sqrt(2) / 2, sqrt(2) / 2));
}
}
}
}
}
}