Due to the way material are working now, we need to set by hand (for now) that the material is set.

This commit is contained in:
Godzil
2020-03-09 14:17:08 +00:00
parent efa47f28ca
commit d514219ae6

View File

@@ -46,11 +46,12 @@ Shape *fir_branch()
branch->material.ambient = 0.2; branch->material.ambient = 0.2;
branch->material.specular = 0; branch->material.specular = 0;
branch->material.diffuse = 0.6; branch->material.diffuse = 0.6;
branch->materialSet = true;
ret->addObject(branch); ret->addObject(branch);
double seq_size = length / (segments - 1); double seq_size = length / (segments - 1);
double theta = 2.1 * M_PI / perSegment; double theta = 2.1 * M_PI / perSegment;
double maxLenght = 20 * radius; double maxLength = 20 * radius;
int y, i; int y, i;
Triangle *needle; Triangle *needle;
@@ -69,7 +70,7 @@ Shape *fir_branch()
* around the branch */ * around the branch */
double yAngle = i * theta + frand() * theta; double yAngle = i * theta + frand() * theta;
/* How long is the needle? */ /* How long is the needle? */
double needleLenght = maxLenght / 2 * (1 + frand()); double needleLenght = maxLength / 2 * (1 + frand());
/* How much is the needle offset fomr the center of the branch? */ /* How much is the needle offset fomr the center of the branch? */
double ofs = radius / 2; double ofs = radius / 2;
Point p1 = Point(ofs, yBase, ofs); Point p1 = Point(ofs, yBase, ofs);
@@ -79,6 +80,7 @@ Shape *fir_branch()
needle->setTransform(rotationY(yAngle)); needle->setTransform(rotationY(yAngle));
needle->material.colour = Colour(0.26, 0.36, 0.16); needle->material.colour = Colour(0.26, 0.36, 0.16);
needle->material.specular = 0.1; needle->material.specular = 0.1;
needle->materialSet = true;
subGroup->addObject(needle); subGroup->addObject(needle);
} }
ret->addObject(subGroup); ret->addObject(subGroup);
@@ -104,6 +106,7 @@ int main()
light1Sphere.material.ambient = 0.6; light1Sphere.material.ambient = 0.6;
light1Sphere.material.diffuse = 0; light1Sphere.material.diffuse = 0;
light1Sphere.material.specular = 0; light1Sphere.material.specular = 0;
light1Sphere.materialSet = true;
w.addObject(&light1Sphere); w.addObject(&light1Sphere);
Light light2 = Light(POINT_LIGHT, Point(10, 10, -10), Colour(0.6, 0.6, 0.6)); Light light2 = Light(POINT_LIGHT, Point(10, 10, -10), Colour(0.6, 0.6, 0.6));
@@ -115,6 +118,7 @@ int main()
light2Sphere.material.ambient = 0.6; light2Sphere.material.ambient = 0.6;
light2Sphere.material.diffuse = 0; light2Sphere.material.diffuse = 0;
light2Sphere.material.specular = 0; light2Sphere.material.specular = 0;
light2Sphere.materialSet = true;
w.addObject(&light2Sphere); w.addObject(&light2Sphere);
Light light3 = Light(POINT_LIGHT, Point(-2, 1, -6), Colour(0.2, 0.1, 0.1)); Light light3 = Light(POINT_LIGHT, Point(-2, 1, -6), Colour(0.2, 0.1, 0.1));
@@ -126,6 +130,7 @@ int main()
light3Sphere.material.ambient = 0.6; light3Sphere.material.ambient = 0.6;
light3Sphere.material.diffuse = 0; light3Sphere.material.diffuse = 0;
light3Sphere.material.specular = 0; light3Sphere.material.specular = 0;
light3Sphere.materialSet = true;
w.addObject(&light3Sphere); w.addObject(&light3Sphere);
Light light4 = Light(POINT_LIGHT, Point(-1, -2, -6), Colour(0.1, 0.2, 0.1)); Light light4 = Light(POINT_LIGHT, Point(-1, -2, -6), Colour(0.1, 0.2, 0.1));
@@ -137,6 +142,7 @@ int main()
light4Sphere.material.ambient = 0.6; light4Sphere.material.ambient = 0.6;
light4Sphere.material.diffuse = 0; light4Sphere.material.diffuse = 0;
light4Sphere.material.specular = 0; light4Sphere.material.specular = 0;
light4Sphere.materialSet = true;
w.addObject(&light4Sphere); w.addObject(&light4Sphere);
Light light5 = Light(POINT_LIGHT, Point(3, -1, -6), Colour(0.2, 0.2, 0.2)); Light light5 = Light(POINT_LIGHT, Point(3, -1, -6), Colour(0.2, 0.2, 0.2));
@@ -148,6 +154,7 @@ int main()
light5Sphere.material.ambient = 0.6; light5Sphere.material.ambient = 0.6;
light5Sphere.material.diffuse = 0; light5Sphere.material.diffuse = 0;
light5Sphere.material.specular = 0; light5Sphere.material.specular = 0;
light5Sphere.materialSet = true;
w.addObject(&light5Sphere); w.addObject(&light5Sphere);
/* ----------------------------- */ /* ----------------------------- */
@@ -158,6 +165,7 @@ int main()
theBall.material.specular = 0; theBall.material.specular = 0;
theBall.material.diffuse = 0.5; theBall.material.diffuse = 0.5;
theBall.material.reflective = 0.5; theBall.material.reflective = 0.5;
theBall.materialSet = true;
w.addObject(&theBall); w.addObject(&theBall);
Cylinder crown = Cylinder(); Cylinder crown = Cylinder();
@@ -171,6 +179,7 @@ int main()
crown.material.specular = 0.8; crown.material.specular = 0.8;
crown.material.shininess = 20; crown.material.shininess = 20;
crown.material.reflective = 0.05; crown.material.reflective = 0.05;
crown.materialSet = true;
w.addObject(&crown); w.addObject(&crown);
/* ----------------------------- */ /* ----------------------------- */