CSCI 444/544 - Advanced Computer Graphics

Spring 2019

|     Home   |   Syllabus  |   Assignments  |   Schedule  |   Resources    |

Kepler Novotny

"XXX_DarkS14y3R_XXX"



Lab 1



This was a brief introductory lab. The world shown was pregenerated, and the main purpose was simply to ensure that the environment is set up correctly for this course.

Lab 2



This lab expanded on the previous one by adding subroutines to change the color and the way vertices were processed.

Assignment 1



This is the first real assignment. The purpose was to work with uniform buffer objects and better understand shader subroutines and how to switch between and update these values. The program can switch between phong/gourad shading as well as between the phong or blinn-phong specular models.

Lab 3



This lab introduced the use of tesselation shaders to generate Bezier patches. A pregenerated set of control points and indices were provided, and the tesselation control and evaluation shaders were written to generate the curve.

Assignment 2



This assignment was designed to utilize both tesselation shading, input file reading, and more advanced geometry shader techniques. Additionally, it utilized separable programs so that the wireframe/shading model could be reused by all parts of the program, but one part could use the tesselation shaders while the other did not. The wireframe and control point rendering are toggleable via subroutines and the shaders were split into pipelines to perform these separate tasks.

Lab 4



This lab was a simple introduction to noise generation. The noise pattern has become somewhat obscured by the significant transformations to the ground plane, but the base for each fragment comes from a Perlin noise generation function, and varies with time.

Lab 6



This lab introduced reflection using cubemaps. Using simple calculations with the view vector and the surface normal, it was simple to map the fragment on each surface of the cube to a position on the cubemap to generate reflections of the world around the user.

Assignment 3



This assignment was a more in-depth utilization of Perlin noise for more complex applications and more than 2 dimensions. The ground plane was recycled from an earlier version of lab 4, which uses 2D noise. To generate the left cube, 3D Perlin noise was utilized, along with a provided formula for generating the marble-like appearance from this noise. The right cube was generated similarly, but with 4D noise; while it can not be seen in the image, the right cube also utilized a time factor in its noise calculation, and causes the pattern in the marble to shift continuously.

Assignment 4



This assignment was a primer into utilizing the povray framework to render graphics via raytracing. The basic design to generate the M shape was provided in a lab, and this assignment was to build upon it by generating more effects. The sky was made more aesthetically appealing through the addition of a color gradient, the object was made partially transparent/reflective using the fresnel model, and a large area of fog was generated to color the scene. Not visible is the fact that the scene was also animated, which allowed the M to pop up and spin in a circle.