CSCI 441 - Computer Graphics

Fall 2023

|     Home   |   Assignments  |   Leaderboard  |   Schedule  |   Resources    |

"Steve"

Final Project



For the final assignment, my group combined everything that we have learned to build a visualizer for a solar system. The system can be explored with either an arcball cam or a free cam. This free cam is a third person camera for a rocket ship. The solar system is textured and implements gouraud shading. In the center, there is a sun that is a sphere with vertices that are constantly deformed in the vertex shader. This gives the sun a wave like appearance. The skybox also has a unique fragment shader where the stars will twinkle but nothing else. Finally, all of the planet orbits are controlled by bezier curves.

A5 - The Barbarian Horde



For this assignment, I created a game based off of previous assignments. In this game, you control a horse and your goal is to survive until the timer on the left runs out. To lose, you can fall off the map or get hit by an arrow. These arrows are controlled by a particle system and they can also fall off the map. Each obstacle on the map cannot be passed through by either arrows or the player. Finally, arrows have a basic collision system where they will bounce off of each other if they hit.

L012 - Transparency



For this lab, I implemented transparent textures onto billboarded rectangles. The transparency was implemented through drawing each snowflakes in order from back to front.

A4 - Off To Never Never Land



For this assignment, I combined concepts from a bunch of previous assignments. The world is theh same as the one created in MP. However, I added a skybox around it. Furthermore, the code now takes in a data file and a resolution to create a looping C1 continuous Bezier curve that can be rendered. Along this curve, flies an arrow object.

L011 - Particle Systems



For this lab, I implemented a particle system for "marbles" and then implemented a basic collision detection system which allows them to elastically bounce off of each other.

L09 - Bezier Surface



For this lab, I read in points from a file to create a bezier patch. I then used tesselation shaders to render this patch as one smooth surface.

L08 - Bezier Curves



For this lab, I read in points from a file to create a bezier curve and then had a sphere move along the curve.

L06 - Texturing



For this lab, I implemented texturing on various 3d objects and models. This was done through using shaders to interpolate colors based on a texture map from an image.

MP - The Fellowship



For this project, 2 others and I combined what we had learned so far to create a scene with many objects in it and 3 controllable characters. We also had 4 different togglable cameras and 3 different types of light. Finally, we implemented the phong lighting model with gouraud shading.

A3 - The Cabin In The Woods



For this assignment, I created a 3d scene where you control a horse that can move around the world. The world implements both ambient and diffuse lighting and there are 3 different cameras that can be used to view the world.

L05 - Flight Simulator v2



For this lab, I modified code from L02 to add shaders and a plane to the flight simulator.

L04 - Shaders



For this lab, I created basic shaders and applied them to basic shapes.

L03 - Hellknight



For this lab, I used the MD5 model library to display an animated hellknight from doom.

SQ1 - All Your Base Are Belong To Us



For this side quest, I created an animated game. The game is basically rock paper scissors where you try to win as many rounds as possible without losing 3 rounds. In the game, you play against a robot.

A2 - An Unexpected Journey



For this assignment, I created an animated character out of OpenGL primatives that the user can control and interact with. The character can be moved around a map that changes when the player tries to go off the screen.

L02 - Flight Simulator



For this lab, I modified existing code to create a scene that has many randomly created buildings (rectanglular prisms) and controls that allow you to fly around the "city" through the use of a free cam.

A1 - Hoist Your Sign



For this assignment, I made a 700 pixel by 150 pixel banner for my character using OpenGL primatives. The letters are made from repeatedly using a triangle strip square. I scaled and translated the square to make up different parts of the letter. I also messed around with rotating the square to gain experience with glm::rotate. To make the shadows, I made the letter methods take in a GLuint parameter that pointed to the VAO to use when drawing. The crest is made up of a large grid of triangles with different colors. Finally, the background is a rectangle made by a triangle fan that has different colors on vertices for a nice gradient.