CSCI 441 - Computer Graphics

Fall 2020 - Assignment 4 - Light Up the Night



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 Tuesday, October 20, 2020 by 11:59pm.

Construction has now begun on your track. You are pleased with the work thus far and begin to wonder when you need to complete the track by. How soon until Onogoro Island 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 come running back up to.
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 want the shot to be done at night to really emphasize the track. We'll need you to install some track lighting really make the people movers shine!
As she walks away, you still hear her talking very excitedly to herself.
This will surely get people talking! They'll be lined up to get in.


Part I - Electric Light Orchestra


Everybody seems so excited for Onogoro Island to reopen.

How am I supposed to install lights? What do I know about electricity? Where even is the power source?

Sure enough, the woman thought of this and had left an instruction manual on a nearby stack of tires. You open the book and begin reading.
For this assignment, you will use your Assignment 3 submission as the starting point and add to it. As before, your program must feature a ground 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 various lights around the scene. You will need to create a custom vertex/fragment shader program to implement the lighting calculations.

The following specifications must be met:
  • Your program must have at least two point lights located at different positions in your world.
  • Each light must be a different color.
  • Your shader must now implement, at a minimum, the diffuse illumination for these lights on to the objects in your world.
  • The lights also need to exhibit attenuation so we have an idea of their location in the world (objects will be brighter nearer the light, dimmer further away).
  • The lights will be additive. If an object is being lit by both lights, then its final color will be the sum of the two individual light components.
  • Instead of a grid for the ground, we'll need to have a solid ground to see the ground lit up.
The camera can follow any camera model (freecam or arcball cam) you like.
Ready to go, you start running some wires and finding the brightest bulbs you can.


Part II - Website


Update the webpage that you submitted with A3 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
30%At least two point lights used in the world. Each has a different location within your world and are a different color.
15%Lights exhibit attenuation.
15%Lights are additive.
10%Vertex Shader calculates diffuse component of lighting for a point light.
10%Gourad Shading is applied by the Shader Program.
5%World consists of solid ground, solid objects, and hero. Ground, objects, and hero are all lit by the lights in the scene.
5%Hero can move around the world and cannot move off the ground.
5%Camera follows arcball cam or freecam model.
5%Submission includes source code, Makefile, 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
A Lighter Shade of Pale
A Lighter Shade of Pale
???
???

*NOTE: Since this assignment builds off exactly where Assignment 3 left off, the hidden achievements from Assignment 3 will also apply to this assignment. The Extra Credit Achievement from A3 cannot be earned from this assignment (A4). If you already earned the hidden achievements from A3, you cannot earn them a second time from A4.


Submission


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


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