5542 Lab5 (15 pts)
Texture mapping, environment mapping and put together a complete 3D environment
Due: 12/2 Monday 11:59pm
Class demonstration 12/3 in class
In this lab, you will enhance your scene with texture mapping, environment cube mapping, and put everything together.
Tasks
All tasks below if control keys are needed, define your own. But be sure to put the info in the readme file.
1. (1 pts) Texture mapping on a surface: Enhance your scene with a texture mapped on a planar surface (such as a square) using GLSL shaders. (This is in addition to what you have to do for task 3 where you need to show 6 faces of textures for the environment)
2. (3 pts) Display and texture map onto a parametric surface. An example of parameter surface is:
X = 3 * cos (u) + cos (v) * cos (u)
Y = 3 * sin (u) + cos (v) * sin (u)
Z = sin (v)
where u and v range from 0 to 2 PI
Allow the user to toggle among: Texture, lighted surface, and wireframe (u,v line) mode
More parametric surfaces can be found at: https://singsurf.org/djep/GWTPSurf.php
3. (6 pts) Environment Cube Mapping: In this task you will render reflective objects using OpenGL’s environment cube mapping. To do this:
(a) (2pts) Draw 6 walls to represent your environment, and map the 6 face textures of the cube map to the walls. This is done through the regular GL_TEXTURE_2D texture mapping function.
(b) Perform environment cube mapping on a basic object (2pts) (i.e. your own geometric primitive) and an parametric object (2 pts) of your choice in the scene. Make sure that the reflections on the object(s) and the images on the walls are done correctly. For example, if a point is facing to the positive x direction, for example, it should reflect the image from the positive X wall.
(c)When you rotate the scene globally, or when you move around the object(s). you need to make sure that the reflections are still correct .
You can some good environment map textures from this link:
http://www.codemonsters.de/home/content.php?show=cubemaps
4 (3 pts) Put everything together with self animation: Create a 3D environment that includes everything you have learned this semester (including: hierarchical models, lighting, rotating the scene globally and move/rotate an object of your choice locally). Animate certain objects on their own - for this, you need to find out how to use javascript to call your drawing function periodically with a update of object transformation.
5. (2 pts) Class competition: Create a web page to demonstrate your lab 5. We will give everyone a chance to show the image/animation to the class and talk about what you have done. We will have a class demonstration no 12/3, voted by the whole class. After you submitted your best image, you can continue to improve your program until the image competition date. (up to 2 pts by class grading (average) )
6. Bonus: Implement procedural texture (Perlin Noise) or bump mapping to receive up to 2 or 3 bonus points, respectively.
---------------------------------------------------------------------
Submit
What to submit?
* Your program source files
* Any images or other data files needed for your program to run (including any supplied by the assignment)
* A readme file which:
** Describes how to use your program
** States which bonus tasks you attempted
** Lists which browser/OS you developed your code on (just in case)
Combine these into a single ZIP archive file, and submit that ZIP file on Carmen. (The grader should be able to unzip this file and immediately run your program, so make sure you include everything needed.)
Notes about submitting on Carmen/Canvas:
---------------------------------
To reach Carmen, go to: https://carmen.osu.edu
Once logged in, you should see a link for CSE5542 in your list of classes.
Following this link, under "Activities" you should see the "Dropbox" option. Selecting this will show you a list of folders for submitting your labs.
Select the folder for this lab, click "Add a File" and select your ZIP file. Then click "Submit". (Filling in the comment box is not needed.)
You can use the same process if you need to re-submit, but note that only the last submitted file will be kept.

Late Penalty
You should submit your lab on time. We are on a quarter schedule, which is pretty tight. Being late for one lab could affect the time left for you to complete subsequent labs. All labs are due at 11:59pm of the specified due data, and there is a 10% penalty each day for up to 50%. After that, you get zero.

Grading Criteria
Grading of the labs will be based on the following:
•90%: Correctness and adherence to assignment specification.
•10%: Readability, structure of code, use of comments, adherence to lab procedures (submitting, naming conventions, etc.)
The grader will grade the labs. If you have problems with the grade you received on your lab, see the grader first. If you can't resolve the dispute with the grader, then see me. However, in order to maintain consistent grading for everyone in the class, I am not very inclined to alter grades that are assigned by the grader.
Don't copy labs. Discussion of lab assignments is allowed and encouraged. However, you need to complete the lab all by yourself. Labs which are too similar will be handed over to the Committee on Academic Misconduct and handled by them.