Assignment 7: Expressive and Interactive Experience
- Due Dec 2, 2018 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.
Description
Extend your code for Assignment 6 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. To support interaction, you will have to implement Color-based picking. This consists of selecting objects in the world that are identified based on a color encoding. Thus, we can tell if we're clicking/pressing on one object or the other by reading pixel colors from the canvas. The overall idea consists of:
1. When the mouse or key is pressed, draw each object with a single unique color.
2. Read the pixel value (color) of the selected (clicked/pressed) point.
3. Redraw the objects with their original color.
4. Based on the color select in step (2), return the object that you selected.
To ensure that the viewer doesn’t see the fast color transition, you need to perform steps (1) and (2) in the same function. Besides Color-based picking, you will have to implement one extra advanced topic of interactive computer graphics of your choice (most of them have a Section in Chapter 10 of the textbook), such as:
- Heads-up Display (HUD)
- Atmospheric Effect (FOG)
- Alpha Blending
- Shadows
- Hierarchical Objects
- Spritesheet Animation
- Collision Detection
- Particle Systems
Your application is required to have the following features:
- A world (2D or 3D) with multiple objects.
- User can interact with the objects by clicking or pressing on them.
- It makes a creative usage of one of the advanced topics listed above.
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]_Assignment_7.zip" (e.g. "Lucas_Ferreira_Assignment_7.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. ALSO, COMMENT WHAT EXTRA TOPIC YOU IMPLEMENTED AND HOW WE CAN VISUALIZE IT.
Read the SubmissionGuide.txt file for further explanation on how to submit your assignment.
Rubric
Criteria | Ratings | Pts |
---|---|---|
Have a world with multiple geometries where the user can navigate in by moving the camera (2D or 3D).
threshold:
pts
|
pts
--
|
|
Have at least one source of light.
It can be a point or directional light and it can have any combination of ambient, diffuse and specular components.
threshold:
pts
|
pts
--
|
|
User can interact with at least 3 different objects using picking with the keyboard (picking point is the center of the screen) or the mouse.
threshold:
pts
|
pts
--
|
|
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
--
|
|
Implement one of the advanced computer graphics listed above.
Heads-up Display (HUD) , Atmospheric Effect (FOG), Alpha Blending, Shadows, Hierarchical objects, Spritesheet animation, Collision Detection, Particle Systems.
threshold:
pts
|
pts
--
|
|
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
--
|