2023-02-25 22:29:00 +00:00
|
|
|
|
CSci 5607, Spring 2023
|
|
|
|
|
Assignment 1c: Triangles and Texture
|
2023-02-25 22:27:39 +00:00
|
|
|
|
Due: Friday March 3rd
|
|
|
|
|
|
|
|
|
|
- [x] The program robustly accepts extended scene description files that include
|
|
|
|
|
texture images, texture coordinates and surface normal vectors. The
|
|
|
|
|
program is able to robustly handle triangle definitions that either
|
|
|
|
|
include or do not include per-vertex normal directions and include or do
|
|
|
|
|
not include per-vertex texture coordinates, in addition to vertex
|
|
|
|
|
locations. The syntax used to define textured and/or smooth-shaded
|
|
|
|
|
triangles follows the classic .obj format as described in class. (5 pts)
|
|
|
|
|
|
|
|
|
|
- [x] The program correctly computes ray/plane intersections, and correctly
|
|
|
|
|
performs point-in-triangle testing using barycentric coordinates, enabling
|
|
|
|
|
the correct rendering of scenes containing triangles as well as spheres.
|
|
|
|
|
(20 pts)
|
|
|
|
|
|
|
|
|
|
- [x] The program is capable of rendering triangles using flat shading, in which
|
|
|
|
|
every pixel in a triangle is assigned the same color, obtained by
|
|
|
|
|
correctly evaluating the Phong illumination equation using the unit length
|
|
|
|
|
normal of the plane in which the triangle lies. (10 pts)
|
|
|
|
|
|
|
|
|
|
- [ ] The program is capable of rendering triangles using smooth shading, in
|
|
|
|
|
which every pixel within a triangle is assigned a unique color, obtained
|
|
|
|
|
by evaluating the Phong illumination equation using a unit length normal
|
|
|
|
|
direction correctly interpolated from the three normal directions defined
|
|
|
|
|
at the three triangle vertices. (15 pts)
|
|
|
|
|
|
|
|
|
|
- [x] The program is capable of rendering textured spheres. An appropriate
|
|
|
|
|
texture coordinate is computed at each ray/sphere intersection point. This
|
|
|
|
|
can be done at runtime using a pre-defined, hard-coded algorithm. The
|
|
|
|
|
computed texture coordinate is used to retrieve a correctly corresponding
|
|
|
|
|
color from the associated texture map, which replaces the object’s diffuse
|
|
|
|
|
color in the Phong illumination model when it is evaluated at that point.
|
|
|
|
|
(25 pts)
|
|
|
|
|
|
|
|
|
|
- [ ] The program is capable of rendering textured triangles. The texture
|
|
|
|
|
coordinate at the ray/triangle intersection point is correctly
|
|
|
|
|
interpolated from the texture coordinates defined at each of the three
|
|
|
|
|
triangle vertices. The interpolated texture coordinate is used to retrieve
|
|
|
|
|
a correctly corresponding color from the associated texture map, which
|
|
|
|
|
replaces the object’s diffuse color in the Phong illumination model when
|
|
|
|
|
it is evaluated at that point. (25 pts)
|
|
|
|
|
|
|
|
|
|
- [ ] Extra credit: The program is capable of reading a normal map from a file
|
|
|
|
|
and correctly using the values in that map to appropriately vary the
|
|
|
|
|
surface normal direction used when calculating the Phone illumination
|
|
|
|
|
equation at each point across the surface. The normal mapping is capable
|
|
|
|
|
of being applied to both triangles and spheres. (7 pts)
|