Final Project Part 1
- Due May 27, 2019 by 11:59pm
- Points 10
- Submitting a file upload
Objectives
To create an expressive and interactive experience with all the concepts learned during the course.
Contest
The last day of class will be a demo/judging day. We will have awards for Grand Prize, Most Creative, Best Visuals, Most Fun, Class Favorite. The contest and in class presentation is optional, not all teams are required to participate. Prizes will include things like gift cards, CMPS160 Mugs, and computer graphics textbooks. Exact prizes to be determined.
Description
Extend your code in order to create an expressive and interactive experience. This can be a small game (2D or 3D) to be played, a design tool, an interactive piece of art, etc. Your project is required to include both: interactivity and visuals. In this first part your team will design an experience and add support to interaction with objects in your virtual world. This requires the following tasks:
1. Propose an interactive experience that you want to create.
- What type of experience is this (e.g. a game, a design tool? an interactive art?)
- What is the goal of this experience?
2. Design how the user will interact with the objects in your interactive experience.
- What objects can the user interact with (e.g. walls, ground, etc) ?
- How is this interactions performed (e.g. with mouse, keyboard, external controller)?
- How does this interaction changes the state of the object (e.g. does this select it, destroy it, move it, etc)?
- How do you communicate the user that this interaction actually took place (e.g visual feedback, sound effect, etc)?
3. Design how your world will look like.
- What is the visual style of your world (e.g. realistic, cartoony, abstract, etc)?
- Are there visual references you are trying to recreate (e.g. Sin City, Zelda Breath of the Wild, Super Mario Bros.)?
- What visual effects will you need to implement to get the look you want (e.g fog, shadows, environment mapping, cel shader, etc)?
4. Find 2 computer graphics techniques per team member to implement the interactivity and visuals you proposed. Here is a list of technique examples:
- Interactivity
- Color-picking
- Ray-casting
- Collision detection
- Heads-up Display
- ...
- Visuals
- Fog
- Shadow
- Ray-tracing
- Cel shading (toon shading)
- Particle Systems
- Water effect
- Fire effect
- "God rays"
- ...
Your application is required to have the following features:
- Docs: A short design document (1 page) explaining the experience you want to create. (e.g. I want to make a set of green flaming headphones that ignite the professors head when the user clicks on them)
- Docs: Pictures illustrating what you hope to create. These could be found on the web and you might need a couple to help explain your idea (e.g. headphones should look like this picture, and the green flaming effect is like this picture, and the ignited head is sort of like this picture)
- Code: A world (2D or 3D) with multiple objects. You will likely need to change the objects from what you have now to instead load what you want to create.
- Code: User can interact with at least 3 objects as specified in your design document.
- Code: Visual feedback when an object is selected. Meaning the object highlights, or flames, or whatever so the user knows.
- Code: Implement 2x advanced features per team member. You have a lot of freedom to choose what you want to implement. Advanced interaction methods, or advanced rendering things. Whatever you want to learn about or need to complete your idea.
- Docs: Explanation of how each feature works. That is, what cool thing did you have to do to get this feature coded and working.'
- Docs: Explanation of how to interact with your page/world
- Docs: A 30 second video screen capture showing as many awesome things about your creation as you can.
- Docs: List of team members who created the project. List of external libraries and resources used.
- Aesthetics: This is a graphics class. You can make it beautiful, or surprising, or fun (or if you are really awesome then all of those). You can not make it boring and uninteresting. Part of the grading is this hard to define aesthetic.
Your submission will have:
Code: You will be turning in a zip file as usual. Each team member is turning in the same thing. You turn it in individually.
Docs: Everything needed for docs should be part of your web page. You can just put it at the bottom of the page, or you can link it to another page. However you like, as long as we can find it when we run the webpage and its all included in the submission.
Private.txt - This is a file that is not shared across teammates. You evaluate what fraction/percentage of work was done by each team member.
Resources
Readings: Matsuda/Lea - Ch10.
What to Turn in
1. Canvas Submission
Zip your entire project and submit it to Canvas under the appropriate assignment. Name your zip file "[FirstName]_[LastName]_FinalProject.zip" (e.g. "Lucas_Ferreira_FinalProject.zip").
2. Live Hosted Submission
Host your assignment on your UCSC portal. This can be achieved by just putting your entire project directory into the 'public_html' folder which you can access via the UCSC Unix timeshare. Your site link is 'https://people.ucsc.edu/~ucsc_user_name/'.
WHEN SUBMITTING YOUR PROJECT ON CANVAS, PLACE YOUR SITE LINK AS A COMMENT OF THE SUBMISSION.
Read the SubmissionGuide.txt file for further explanation on how to submit your assignment.
Rubric
Criteria | Ratings | Pts | ||
---|---|---|---|---|
Doc: A 1 page design/planning document (section of web page) explaining what you want to accomplish.
threshold:
pts
|
|
pts
--
|
||
Doc: At least one picture included in your description of what you want to accomplish to show the goal.
threshold:
pts
|
|
pts
--
|
||
Code: User can interact with at least 3 different objects.
threshold:
pts
|
|
pts
--
|
||
Code: Present visual feedback to user when an object is selected.
This can be a color highlight, edge highlights, message on the screen, etc.
threshold:
pts
|
|
pts
--
|
||
Doc: Description of each of (team members x2) advanced methods you (plan to) have implemented.
Heads-up Display (HUD) , Atmospheric Effect (FOG), Alpha Blending, Shadows, Hierarchical objects, Spritesheet animation, Collision Detection, Particle Systems. For each thing, there will be a paragraph of what you are planning.
Also include a section explaining all the things you had to do that aren't advanced features but will take time: get new textures, find the right OBJ files, set up the world with objects in the right places, fix the transforms, and whatever
threshold:
pts
|
|
pts
--
|
||
Aesthetic: Make a meaningful and engaging experience using computer graphics.
You already have the tools to create a world with animated objects that can have textures. Now it is time to use these tools to create an application that is meaningful and have an end goal. This can be a small game (2D or 3D) to be played, a design tool, an interactive piece of art, etc.
threshold:
pts
|
|
pts
--
|
||
Doc: How to interact
Tell us what we need to do to play with your creation. What buttons to hit, etc
threshold:
pts
|
|
pts
--
|
||
Total Points:
10
out of 10
|