The WebGL API is supported in the recent versions of all the major browsers. It exploits the system's GPU to render 3D graphics. WebGL runs in a browser which handles user input in order to allow interactive graphics.
This assignment familiarizes us with various aspects of WebGL: the coordinate system, writing shaders, writing an application program, and handling user interaction. For this assignment, we will also have to look up relevant HTML and JavaScript functionality. This is unavoidable as they embed WebGL. Luckily, both are extensively documented online and students have previously been able to pick these up efficiently and quickly.
For this assignment, you should
- know the function of each stage in the graphics pipeline
- understand the interaction between a WebGL application program, the vertex shader, and the fragment shader
- be comfortable with programming and researching desired programming functionality
- be familiar with interpolation,
- know WebGL's coordinate system and drawing routines,
- be able to implement data transfer from CPU to GPU and binding of shader variables
- know the matrix form of affine transformations and be able to apply them in a vertex shader,
- be able to look up, where necessary, and implement the functions and syntax in HTML and JavaScript for desired functionality.
The problems are in hw2.tex
which is to be compiled using a LaTeX compiler.
There are 3 parts to this assignment.
Each problem in the problem set specifies the names of the files to write for it. Please make sure that your submitted files have the indicated names. Files with those names in your GitHub repository at the time of the deadline will be considered your team's submission. As your submission will be graded by your peers, please do not include identifying information in it.
This is a team submission on GitHub and contributes to your Submission Score.
Deadline: 2359h on Sunday, 17 October
You will provide feedback on your buddies and on the homework. The feedback form will be available on LMS with further instructions and will be due at the same time as the problem set.
This is an individual submission on LMS and contributes to your individual Team Factor which is 1 by default and penalized for non-submission or non-participation in the team as assessed through peer feedback or GitHub contribution.
Deadline: 2359h on Sunday, 17 October
You will review and grade 2 submissions which will be shared with you through an assignment on LMS. The assignment will become available on LMS with further instructions after the submission of the first 2 parts.
This is an individual submission on LMS and contributes to your individual Review Factor which is 1 by default and penalized for non-submission.
Deadline: 2359h on Tuesday, 19 October
Your submission will be graded as per the criteria specified in the accompanying file, hw2-review.xlsx. This will contribute to your Submission Score.
Your individual score in this homework is the product of your Submission Score, Team Factor, and Review Factor.
This is a challenging assignment. Start early and do lots of discussion through the following avenues:
- discuss with your buddies,
- the corresponding discussion thread on LMS,
- discuss with your peers,
- consult with course staff.