首页 >
> 详细

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

联系我们

- QQ：99515681
- 邮箱：99515681@qq.com
- 工作时间：8:00-23:00
- 微信：codinghelp

- Comp 3005作业代写、代写c++语言作业、代做database作业、C 2020-02-16
- Beng0019作业代做、代写java编程设计作业、代做c/C++，Pyth 2020-02-16
- Ug3 Operating Systems 2020-02-16
- Homework 1 Use Marching Cubes Algori... 2020-02-16
- Module Ics-33 Quiz #2: File Reading, E... 2020-02-16
- S&As: Stat1603 Introductory Statistics 2020-02-16
- Fit5145 - Introduction To Data Scienc... 2020-02-16
- Stat 440作业代写、R编程设计作业调试、代做data课程作业、代写r语 2020-02-15
- 代写mpi Programming作业、Python编程语言作业调试、Pyt 2020-02-15
- Pricing Analytics作业代写、代做r课程设计作业、代写r程序语 2020-02-14
- 代写pol 850作业、代做r编程语言作业、代写script留学生作业、代写 2020-02-14
- 06-30175作业代做、Data Structures作业代做、代写jav 2020-02-14
- Csci 3151作业代做、代写data留学生作业、Python语言作业代写 2020-02-14
- Ec451 Ch4作业代做、代做r编程设计作业、代写data留学生作业、代做 2020-02-13
- 代做programming作业、C++程序语言作业调试、C++课程设计作业代 2020-02-13
- 代写csci 3136作业、代做c++编程语言作业、代写programmin 2020-02-13
- Stat 440课程作业代做、代写r Code作业、代写bootstrap作 2020-02-12
- 代做mthe/Stat 353作业、代写r语言作业、Matlab程序语言作业 2020-02-12
- 代做cmsc 498作业、代写deep Learning作业、Python, 2020-02-12
- 代写stat 445作业、代做matlab程序语言作业、Matlab,Pyt 2020-02-12