Homework 6: A little Spin in 3d
Short Description:
Write a program that demonstrates your ability to display and perform transformation of models in WebGL.
Goals
When you finish this homework, you should
- Have a working WebGL/Javascript environment.
- Be able to transform objects in this environment.
Formal Description
For this assignment, I have created a new set of models. They are located at https://mirkwood.cs.edinboro.edu/~bennett/GraphicsCode/NewShapes/. These models are different from the ones presented in previous exercises. Please read the accompanying documentation.
Please create a program which displays one or more of these models. Ideally I would like four different scenes, displayed in the four corners of the canvas using viewports.
- One should demonstrate simple rotation. For example a teapot slowly rotating about the y axis.
- One should demonstrate translation. For example a small dino "walking" around in corner of the canvas.
- One should demonstrate scaling. For example a teapot that shrinks and grows.
- One should be a complex scene with multiple models. These should demonstrate a combination of transformations. For example a larger lizard rotating in the center of the screen while several xwing fighters and copters circle bout in different orbits.
In addition, you should modify the colors on at least one of the models so that the model is multicolored. For example, the top "half" of the lizard might be green. I expect this to be done pragmatically.
Points:
- Displaying an of the models from this file is worth 30% of the points.
- Each of the simple items is worth 10% of the points.
- Modifying colors is worth 10% of the points.
- The last item, a complex scene is worth 30% of the points.
Please use the following files:
-
https://mirkwood.cs.edinboro.edu/~bennett/GraphicsCode/NewShapes/
for shape files
-
https://mirkwood.cs.edinboro.edu/~bennett/GraphicsCode/Common/
for other standard .js files.
Documentation
Please provide a cover page that describes what you have done in each scene as well as a list of collaborators. Also, if you feel you deserve credit for extras, please document this.
Additional Requirements/Comments
- I expect you to build your code based on my examples.
Extras
I find that I want to continue to play with simulations/visualizations of this type. Please do so, but only if you have sufficient time, do not enhance this, or any other project at the expense of your other classes.
Submission
When you have finished your assignment, please submit a tar or zip file containing all files needed for this project. Please do not post your project on line until after grades have been assigned.
If you have created any javascript text files that are included in your program, please make sure that the file extension is not .js. Mail clients will reject tar files containing files with a .js extension. Please use the extension .prog.
Submit your file to the D2L homework folder Homework 6 by the due date. If you work collaboratively, I expect that each programmer will submit a copy of the final product.