Assignment 1: Hello AA

Due date: Sunday April 24th, 2011 by 11:59PM PDT.

The purpose of this assignment is to make sure you have sufficient understanding of vertex and pixel shaders and simple rendering. Along the way you will get a little experience with a post processing anti-aliasing technique.

Step 1:

Find a GL/DirectX code base that renders something reasonably interesting. I'm not expecting you to write significant code here. In fact, I explicitly want you to reuse your code from CS248 or something else from the internet. It should be reasonably interesting and have aliasing artifacts to start with. If you don't have ready access to code, I would suggest Humus's demo page, NeHe, and/or MSDN DirectX.

Step 2:

Use at least one image based, post processing AA technique. I would recommend starting with FXAA since that should be implementable on most if not all hardware you may be using. There are also other techniques that have different tradeoffs like MLAA you may find interesting to try. Any and all code you can reuse is fair game, but be warned it's sometimes easier to redo it from the papers than reuse something already available.

Step 3:

Choose 4 before and after images showing the benefits and drawbacks of the AA technique(s) you choose to implement, only FXAA is required. Highlight and describe where the algorithm is working well on your scene and where it is not doing a good job or introducing other artifacts.

Step 4 (optional):

Explore the benefits and drawbacks of the technique(s) you have chosen more deeply. How does modifications to the algorithm change the behavior? I don't want you to parrot back what is in the papers, I want you to think about what the algorithm really does.

What are the performance impacts on framerate? What are the bottlenecks to the algorithm.

Submission and Grading:

Remember the purpose of this assignment is to test that you have the basic background to understand and apply something reasonably straight forward. What you choose to learn from the assignment will be what you put into it. Only the minimum is required, but I would like you to at least think about the optional parts.

This assignment will be graded on a credit/no credit basis. Credit will be given if you have a reasonable scene, have applied at least FXAA, and have analyzed the benefits and drawbacks of the algorithm(s) chosen in a few paragraphs. This should be put into a simple writeup in pdf form including

To submit your work, email the course staff at