CSCI 441 - Computer Graphics

Fall 2020 - Assignment 5 - Sell Out



Canvas | CS @ Mines | Mines | Piazza
|   Home |  Assignments |  Leaderboard |  Schedule |  Resources   |
Blue Teapot2015: Asgard Green Teapot2016: Mount Olympus Red Teapot2017: Aaru Park Grey Teapot2018: Findias Speedway White Teapot2019: Hanan Pacha Black Teapot2020: Onogoro Island

This assignment is due by Friday, November 6, 2020 by 11:59pm.

There is so much excitement around the park since the awarding of the Spiny Shell. How soon until Onogoro Islands reopens? Maybe this is a question you should have asked sooner. No sooner does the thought leave your head that the woman who took your picture comes running back up to you.
Fabulous! I was hoping I'd find you here. We are getting ready to open Onogoro Island and must begin publicizing the grand reopening. We need a new mascot. Our Intern here is all set to do the dance and bring people in. We're going to leave it up to you what our new mascot should be. Please make use of our costume rack again and outfit the Intern. Once your set, please run through the park again. Our mascot will follow you whereever you go. This will surely get people talking! They'll be lined up to get in.


Part I - Follow the Mouse


You look at the Intern and roll your eyes.

Is this really what this kid signed up for? To dance in a monkey suit when nobody's in here?

You pick out some clothes for the Intern to wear and ask the Intern if they really want to do this.
Oh yes, absolutely! Here is the job posting I replied to when they were looking for applicants.
You take the newspaper clipping and begin reading:
For this assignment, you will use prior assignment submission as the starting point and add to it. Following the same format as Lab08, you will read in control points from a file formatted the same as the lab. With your submission, you must include a novel control point file that specifies the Bézier curves for your submission (do not just reuse one of the files from the lab). We will later test with an additional control point file for completeness and accuracy. All curves you submit will be C0 continuous by definition, but can it be C1 continuous as well?

As before, your program must feature a grid and scenery of some sort to provide the user with a sense of scale and perspective. Your hero will still be moving around the world as before. Now, there will be a Bézier curve(s) centered around your hero. You must plot the "control cage," the edges between control points, with a light yellow line, and plot the Bézier curve itself with a blue line. You must also draw small, solid green spheres at the control points. As your hero moves around the world, the curve should move with the hero so the hero is always at the center of where the curve is drawn around. As your hero rotates, the curve should rotate with the hero.

Finally, animate the mascot. that continuously moves along the curve. When the mascot reaches the end of the curve, have it jump to the beginning of the curve and repeat indefinitely

Mobius Strip: unless the end of your curve is the beginning of your curve, what happens then?

Your mascot should be drawn hierarchically. If your hero is standing still, the mascot should still be in constant motion along the curve.

The camera can follow any camera model (freecam or arcball cam) you like.

Lastly, have keys that perform the following operations:
  1. "Display/Hide Control Cage" which toggles if the control points and cage are visible or not.
  2. "Display/Hide Bézier Curve" which toggles if the actual curve is visible or not.
Be sure to put in your README.txt which keys perform each operation.

Additionally, we do not want our world floating out in boring old space. Place your world inside of a giant skybox. There are some links for skybox textures on the resources page, some in the Canvas textures file repository, or you can find others (if you find another source, send the professor the link to add to the resources page).

Your assignment will need to include multiple shader programs at this point to apply the various illumination/texturing/rendering techniques.
Ready to go, the Intern starts dancing around you. Better make Amaterasu happy and start wandering again.


Part II - Website


Update the webpage that you submitted with A4 to include an entry for this assignment. As usual, include a screenshot (or two) and a brief description of the program, intended to showcase what your program does to people who are not familiar with the assignment.


Documentation


With this and all future assignments, you are expeced to appropriately document your code. This includes writing comments in your source code - remember that your comments should explain what a piece of code is supposed to do and why; don't just re-write what the code says in plain English. Comments serve the dual purpose of explaining your code to someone unfamiliar with it and assisting in debugging. If you know what a piece of code is supposed to be doing, you can figure out where it's going awry more easily.

Proper documentation also means including a README.txt file with your submission. In your submission folder, always include a file called README.txt that lists:
  • Your Name / email
  • Assignment Number / Project Title
  • A brief, high level description of what the program is / does
  • A usage section, explaining how to run the program, which keys perform which actions, etc.
  • Instructions on compiling your code
  • Notes about bugs, implementation details, etc. if necessary
  • How long did this assignment take you?
  • How much did the lab help you for this assignment? 1-10 (1 - did not help at all, 10 - this was exactly the same as the lab)
  • How fun was this assignment? 1-10 (1 - discontinue this assignment, 10 - I wish I had more time to make it even better)


Grading Rubric


Your submission will be graded according to the following rubric.

PercentageRequirement Description
10%Scene placed within a textured skybox. Appropriate filtering used on skybox.
10%Control points are read in from file correctly. (Your program will be tested against two new control point files that we provide)
10%Bézier curve is evaluated correctly.
10%Bézier curve is drawn correctly.
5%Control points of the Bézier curve are drawn correctly.
5%Control cage is drawn correctly.
10%Mascot is drawn hierarchically and is animated while moving.
10%Animated mascot moves correctly along curve, jumps back to start at the end of the curve, and repeats this process indefinitely.
5%Mascot moves along the curve smoothly.
10%Bézier curve is centered around hero. As the hero moves throughout the world, the curve moves with the hero and continues to revolve around the hero.
5%Camera follows arcball cam or freecam model.
5%Control Cage and Control Points can be toggled to show or hide.
5%Submission includes source code and README.txt.
Source code is well documented. Webpage named <HeroName>.html submitted and updated with screenshot from latest assignment. Submission compiles and executes in the lab machine environment.


Experience Gained & Available Achievements


Assignment Attribute
Assignments +100 XP
Web Attribute
Web +100 XP
Mobius Strip
Mobius Strip
???
???


Submission


When you are completed with the assignment, zip together your source code, README.txt, and www/ folder. Name the zip file, HeroName_A5.zip. Upload this file to Canvas under A5.


This assignment is due by Friday, November 6, 2020 by 11:59pm.
Last Updated: 10/23/20 11:36
Creative Commons License
Any questions, comments, corrections, or request for use please contact jpaone {at} mines {dot} edu.
Copyright © 2015-2020 Jeffrey R. Paone