Laboratory Assignment 1 -
Due: Feb 12, 2015
Total Points: 100 (+bonus)
Objectives:
This project will expose the team to the following.
- The use of WebGL to create simple user interfaces
- The use of WebGL to communicate with GLSL
- The use of GL primitives.
- The entire team will generate 2D objects and textures using procedural means.
Tasks & Grades:
- (0) To be Impressed: http://hirnsohle.de/test/fractalLab/
- (0) A template is provided here.
It is almost empty sans some ability to set up the user interface. You need to organize the code in a certain way. Please peruse use the directory organization (sans model for now) at http://web.cse.ohio-state.edu/~weit/WebGL/LAB1/. Create folders Common and populate it with JavaScript files from the author of class text namely initShaders.js and webgl-utils.js. You can populate the folders js and web in the same fashion that Wei did.
- (20) User InterfaceIt is the
team's task to make sure it compiles
on the platform-of-choice. The drawing pane will occupy the
entire
“viewport”. The menus will be of the pop-up type and will include
the list “Maze”, “Tree”, “Curve”, "Object"(see below), "Clear" and
"Quit". Currently, you need a "2-button" mouse to pull this
off. You need add callback functions to render each of the
objects/textures listed below. By default, any of the three/four
objects below can be
drawn. The fractaLab page can serve to provide inspiration.
- (70) The following objects have to be constructed. A n-member team will any construct n objects; n=3 or n=4.
- A 2D maze. Please see the code here - http://en.wikipedia.org/wiki/Maze_generation_algorithm
- A 2D fractal tree. Please see example code here - http://rosettacode.org/wiki/Fractal_tree
- A 2D Hilbert curve. Please see example - http://en.wikipedia.org/wiki/Hilbert_curve
- A 2D Mandelbrot or Julia set. Please see example - http://hirnsohle.de/test/fractalLab/
- Or any of the objects in the fractalLab web page.
- (10) User Documentation:
Create a web page that describes the efforts of the team and individual
team. Include images that show off your work.
- (20 max) Creative Sandbox: If
any galleries and content can be included that show off the graphics and
programming prowess, that will be swell. Even a better menu system is welcome :). We will consider according
additional bonus points.
Team Logistics:
Since there are mostly three (or four) to a team, each person will implement code to create one of the 2D objects. The whole team will then build a user menu worth 20 points.
Submission:
We will use Carmen to submit the code. We need all the code and
compiling apparatus. Essentially, the grader needs to be able to
compile easily. Please do include a
README file that describes the platform-of-choice.
Call your submissions CSE5552_LabN_Your-Name. Please use an archiving
technique to bundle all files (zip, rar, etc.). Every student in all
groups will submit the files. Do designate one person as
poin-of-contact and name that person
in the README file.
Milestones:
Since deadlines come and go real fast, we would like to ensure that the class is in sync with us.
On Tuesdays, each group will be prepared with upto 6 slides that describes how they plan to generate each of the three/for objects.
The slides should describe the software engineering aspects (data
structures, function layout, etc.), actual algorithms of choice, and
primitives used (TRIANGLES, LINES, TRIANGLE_STRIP, etc.).
Not all groups will be called. However, it is best to be prepared. The
instructor will used randomized algorithms to select a subset of
the seven groups to describe their apporach to draw one of the objects.
The lab is due on Feb 12 midnight.