49 lines
2.8 KiB
Markdown
49 lines
2.8 KiB
Markdown
CSci 5607, Spring 2023
|
||
Assignment 1c: Triangles and Texture
|
||
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)
|
||
|
||
- [x] 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)
|
||
|
||
- [x] 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)
|