CSCI 444/544 - Advanced Computer Graphics

Spring 2021

|     Home   |   Syllabus  |   Assignments  |   Schedule  |   Resources    |

Shinji Weber's Assignment 1


A1 - Blinn-Phong Shaders, is a program consisting of two shader programs each
with two subroutines which in total allows for both Gouraud and Phong shaders
that each have the possibility to have either Phong or Blinn-Phong specular
lighting.


Shinji Weber's Assignment 2


A2 - Tessellate Your Noisy Teapotahedron, is a program consisting of three
shader pipelines built of 4 shader parts. What this builds to is a program
that can display 3 different models in multiple levels of detail using a
tesselation shader and can swap between displaying phong illumination +
a wireframe (through a geometry shader) or + a texture given by 4d perlin
noise.


Shinji Weber's Assignment 3


A3 - Particle System, is a program consisting of two shaders doing three
passes over a scene. This scene constist of a ground plane, a light source
and 1.5 million cubes. The cubes are spawned at a specified location, they
are given a random velocity and rotation, and then they are left to flail
and fall up to the sky (and to the side a bit). Its supposed to look kind
of like an asteroid falling, but its all red color makes it look a bit
more nightmarish than that. The first image here is a close up to show
the cubes that its made of, and the second image is what it looks like
from afar.


Shinji Weber's Final Project


For the final project, our group decided to implement the marching cubes
algorithm. The algorithm itself is a way to create a mesh around a scaler
feild based off a boundary float. This leads to a mesh that splits the
scalar feild into two sections: less then the boundary and greater than the
boundary. This can be seen easiest in the first image, where the inside
bit is inside the goop and the outside is outside. And how the algorithm
preforms this feat, is by dividing the scalar field into a collection of
small cubes which are then processed individually. Each cube has a all 8
corners analized to find out if they are inside or outside then triangles
are drawn to seperate the inside corners from outside corners. However, the
position and normals can each be calculated 2 different ways. The normals
can be got from either a gradient at each point or from the cross product
of two edges and the positions can be calculated at the halfway points on
the edge or they can be linearly interpolated. As you can see in the bottem
4 images (gradient/interpolated, gradient/halfway, cross/interpolated, cross/
halfway) these each lead to different visual results. Then beyond the basic
algorithm, we also implimented two different scalar fields: one calculated
at real time (the blop in image 1) and the other calculated once and then
drawn (the terrain). Then to make the terrain look good we added two color
options: the desert colors and the plains colors.