Home Page > > Details

Help With CSE 287 Assignment, C++ Course Assignment,c/c++ Programming AssignmentDebug ,Help With shadow feelers Assignment Python Programming| Haskell

CSE 287 Project One Spring 2017.doc
CSE287- Page 1 of 7
Project One
Description: Your ray tracing work will conclude with this project. The project will require
you to implement shadow feelers to create shadows, trace reflection vectors to create
mirror-like inter-object reflections, and add additional types of shapes to a scene. Your
starting point for this lab is your completed lab four.
Your grade on this project will depend not only on successful implementation of
additional aspects of ray tracing, but also on quality of the scene that is rendered by
your project.
Simple Polygon Surfaces
Simple polygons are described by three or more vertices in same plane, are convex,
and have no sides which cross one another. The front face of the polygon is normally
defined as the face on which the vertices appear in counter clockwise order. The
surface normal for the polygon should point out of the front face.
Implement a sub-class of the Plane class that represents a simple polygon. The
constructor among other things should have an input parameter that is a vector of
vec3 objects which specify the vertex locations for the polygon in counter-clockwise
order.
The sub-class should use the findClosestIntersetion method of Plane class to
determine if the plane in which the polygon lies is intersected. It can then use the
method described in the notes to determine if the intersection is inside the polygon
CSE 287 Project One Spring 2017.doc
CSE287- Page 2 of 7
described by the vertices passed to the constructor. You should be able to account for
intersections with both the front and back side of the polygon. Both sides of the polygon
should be rendered with correct lighting.
Quadric Surfaces
Implement at least one specialized sub-class of the QuadricSurface class. Your
specialization should enable the rendering of a quadric surface such as a cylinder,
cone, ellipsoid, paraboloid, hyperbolic paraboloid, etc. Shapes such as the cone or
cylinder should not be infinite. It should be possible to render them in any position within
the scene. In your sub-class, use the findClosestIntersetion of the
QuadricSurface class to do the heavy lifting of intersection testing. In the sub-class
findClosestIntersetion method, you can then check the point of intersection to see
if it is in the more limited shape you are creating. Both sides of the surface should be
rendered with correct lighting.
Function to Look for Ray Intersections
Ray tracing is all about finding intersections between rays and surfaces in a scene. You
have already written code that carries out this task. You will need the functionality that
carries out this task to create shadows and reflections.
You will find the declaration of a function (not a method) called findIntersection. in
Lights.h (I left in in the lab code by mistake). It is defined it in Lights.cpp
#include "Lights.h"
HitRecord findIntersection( const glm::vec3 &e, const glm::vec3 &d,
std::vector

Contact Us - Email:99515681@qq.com    WeChat:codinghelp
Programming Assignment Help!