CSCI 441 - Computer Graphics

Fall 2016 - Assignment 5 - The Middleplane



|   Home |  Syllabus |  Assignments |  Leaderboard |  Schedule |  Resources   |
This assignment is due by Friday, November 04, 2016 by 11:59pm.

"Congratulations! You have been given prospective membership to your Guild. But you didn't think it would be that simple to join did you? You have much training to complete and time is beginning to run short. Our scouts have reported a large army two weeks time to our south. We must be prepated to defend our city."
The tall robed woman pauses and calls you forward. She leads you out of the large meeting room into a smaller side chamber with what appears to be a hazy mirror positioned in the center of the room.
"The time has come, you must become stronger. You may have met some travelers during your journey but you do not yet possess the knowledge to stand up to our enemy. Through this portal await the only ones who can help you, the diety you are loyal to. They are a wise group with the ability to see the future. They will not tell you what lies in the future but instead will help prepare you for it. Heed their word and you can't go wrong."
You hesitate a moment, but know what you must do. Closing your eyes, you reach your hand out and step forward into the mirror. As you open your eyes, you realize you are no longer in the chamber and have reached a strange world.


Part I - Step Through the Portal to The Middleplane


You spin around and see this new world. The landscape is quite odd compared to your home outside Olympus but yet looks very familiar. In same places you see buildings in ruin and aflame. Other places are joyful, full of sunlight and flowers. And yet other places seem to be simultaneously both whole and empty. You can only guess that you have transcended time and are seeing two versions of the future at once.
Can I affect what happens in the future? I would much prefer one of these two outcomes. How can I ensure that it occurs?
A tall and broad man with long hair, a cloak, and a powerful looking sword approaches you saying nothing. He hands you a scroll, turns, and leaves. You unfurl the scroll and read:
For this assignment, you may use your Assignment 4 or Guild Wars submission as the starting point and add to it (or start from scratch). You must give The Middleplane life and place your entire scene inside a skybox using appropriate textures. There are some links on the resources page or you can find others (if you find another source, send the professor the link). In addition, there must be some other textured object in your scene. Whatever it is and how it looks is up to you.

In order for the man to teach you future lessons to prepare you, you must ready your mind and clear your thoughts of everything you've previously known. What this means for us is we will get ready to start using GLSL. Use the included header file to load in a WaveFront object file (such as the Venus de Milo) and place the object in your scene. You must now create a vertex and fragment shader to apply to this object. At a minimum, you must implement a simple pass-through shader that compiles without any errors.

The pass-through vertex shader must transform the vertex into clip space and pass the color information as a varying to the fragment shader. The pass-through fragment shader then sets the interpolated color to the fragment. (Note: these simple pass-through shaders will use glColor*() and not materials so enable/disable features appropriately in this section.) You are encouraged to begin replicating the Fixed-Function Pipeline lighting model if you wish. If you are feeling particularly adventurous, create shaders that deviate from the FFP and implement your own ideas!

When running your program, it must accept three command line arguments: the object file, the vertex shader, and the fragment shader. A sample usage is:
    ./a5 venus.obj passThrough.v.glsl passThrough.f.glsl

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. Make full use of lighting & materials. Allow your Hero to move around the world.
Ready to expand your mind, you set forth looking for the man to learn the first lesson.


Part II - Website


Update the webpage that you submitted with Guild Wars 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 expected 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%Scene placed within a skybox. Additional textured object placed within scene. Appropriate filtering used on skybox and textured object.
10%Object file read in properly using provided header file. Object file rendered within your scene.
40%Vertex and Fragment shaders compile without error into Shader Program. Shader applied to object.
15%Hero can move around world appropriately. Sensible camera model chosen and properly implemented. Lighting & Materials apparent.
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


Submission


Please update you Makefile so it produces an executable with the name a5. When you are completed with the assignment, zip together your source code (including shaders and object files), Makefile, README.txt, and www/ folder. Name the zip file, HeroName_A5.zip. Upload this file to Blackboard under A5.


This assignment is due by Friday, November 04, 2016 by 11:59pm.
Last Updated: 01/01/70 00:00


Valid HTML 4.01 Strict Valid CSS! Level Triple-A conformance, W3C WAI Web Content Accessibility Guidelines 2.0