CS 184 Rasterizer

CS 184: Computer Graphics and Imaging, Summer 2020

Project 1: Rasterizer

Hee Hwang



Overview

Overview

Give a high-level overview of what you implemented in this project. Think about what you've built as a whole. Share your thoughts on what interesting things you've learned from completing the project.

We want to simulate visual entities in a screen. Doing so requires us to understand how the image is stored and represented. We start by drawing a colored triangle on the screen with a rasterization technique. Naive implementation causes jaggies and aliasing. We alleviate this problem by using supersampling. Given that we render figures with color on the screen, we want to move them using mathematics, linear algebra. So far, we were dealing with a single color inside the triangle. What if we have different colors in their vertices? The barycentric coordinate system helps us to determine colors inside the triangles. Furthermore, the coordinate enables sampling points from texture space. We use the nearest and bilinear sampling. Sometimes close and far distance makes jaggies and aliasing, and we mitigate this problem by using mipmap, a cached downsampling image.


Section I: Rasterization

Part 1: Rasterizing single-color triangles


Task 1 (20 pts)


Part 2: Antialiasing triangles


Task 2 (20 pts)


Part 3: Transforms


Task 3 (10 pts)

Affine transformation enables us to do translation, rotation, and scaling with only one matrix multiplication which reduces enormous computing time.


The robot is flying!

Section II: Sampling

Part 4: Barycentric coordinates


Task 4 (10 pts)


Part 5: "Pixel sampling" for texture mapping


Task 5 (15 pts)


Part 6: "Level sampling" with mipmaps for texture mapping


Task 6 (25 pts)