This assignment is due by Monday, November 5, 2018 by 11:59pm.
There is so much excitement around your camp for winning the Spiny Shell Cup. You decide it would be best to bring it back
to your town to show the villagers your accomplishment.
Part I - Display the Cup
As you are loading the Cup on to your rig, you look inside the Cup and realize there is a scroll tied up and tucked away. You retrieve the scroll and upon unfurling it you read:
We are now ready to start using GLSL and VBOs for OpenGL 3.3. For this assignment, you will probably want to start
from scratch as much of what we did before (specifying points/lines/vertices,
materials, lighting, etc.) must be refactored. You will need to create two shader programs for your assignment to function completely.
You will start off by placing your entire scene inside a skybox
using appropriate textures. This is your chance to finally make Findias Speedway look like something more than just a floating coaster in a black
space void. There are some links 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 first shader program
will need to apply a decal-ed texture to your skybox. This will consist of a simple pass-through vertex shader and a fragment shader
that applies the texel to the fragment. NEW: In order to load image files with OpenGL 3, download SOIL 3.0
that has been reworked to compile against OpenGL 3. The original SOIL version only worked with OpenGL 2.
Next use the included
ModelLoader header file to load in a WaveFront object file) (such as the Venus de Milo or Suzanne) and place the object in your scene.
You must now create a vertex and fragment shader to apply to this object. These shaders will reimplement Gourad Shading using
the Blinn-Phong Illumination Model. The vertex shader must transform the vertex into clip space and compute the
Blinn-Phong illumination per-vertex. The vertex color
must then be passed to the fragment shader that then sets the interpolated color to the fragment. If you are feeling particularly
adventurous, implement Phong Shading instead of Gourad Shading!
As before, the user should still be able to interact with your scene using an appropriate camera model.
When running your program, it must accept one command line argument: the object file. A sample
usage is:
./a5 venus.obj
Feel free to add in anything else we've used to this point. Load all your objects from a world file. Use Bézier Patches
for your ground to move around on. Recreate your Hero to move around the world.
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.
15% | Scene placed within a textured skybox.
Appropriate filtering used on skybox. |
15% | Object file read in properly using
provided header file. Object file rendered within your scene. |
65% | Vertex and Fragment shaders compile
without error into Shader Program. Shaders applied to skybox and object. |
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
Assignments +100 XP
|
Web +100 XP
|
A Lighter Shade of Pale
|
FFP-Free
|
Submission
Please update your Makefile so it produces an executable with the name a5. When
you are completed with the assignment, zip together your source code, shaders, object file, textures,
Makefile, README.txt , and www/ folder. Name the zip file, HeroName_A5.zip . Upload this file to Canvas under A5.
This assignment is due by Monday, November 5, 2018 by 11:59pm.
|