GouraudShader class.
This assignment is about 3-D computer graphics. You will not use any new aspects of C++.
double array named intensities
contains the intensity of the light at each of the three vertexes
in the Triangle. They are denoted \(I_a\),
\(I_b\), and \(I_c\) in the lecture notes. The
elements of the intensities array should be
initialized in the setTriangle() method of
the GouraudShader using the lightng model
from the lecture notes.
calculateColor() method in a Colorizer
is passed several parameters. The first three relate to the first vertex
of the "from" side of the Triangle, and the next three
relate to the "to" side of the Triangle.
Recall that a Triangle contains three vertexes.
The fromSideFirstIndex is the first vertex of
the "from" side and the fromSideSecondIndex is
the second vertex of the "from" side. The same idea is used for
the "to" side.
phi contains the interpolation weight for
the "from" side (which is denoted by \(\phi\) in
the lecture notes on shading). Similarly, tau
contains the interpolation weight for the "to" side (which
is denoted by \(\tau\) in the lecture notes).
pi contains the interpolation weight for each
pixel on the scan line (which is denoted
by \(\pi\) in the lecture notes).
calulcateColor() method in the
GouraudShader should use
the intensities array and the red, green, and
blue components of the (front) Color attribute of the
vertexes of the Triangle.
Obviously, you should feel free to ask any other questions you may have.
teapot.txt and fighter.txt data files
from programming assignment 7. The resulting
images should look something like the following:
.pdf files containing the images generated
by your implementation using Canvas.
Copyright 2020