CSCI 441 - Computer Graphics

Fall 2021

|     Home   |   Assignments  |   Leaderboard  |   Schedule  |   Resources    |

"Flora Lupine"


Labs


Lab 00

Triforce Drawn in L00A

In part one of lab zero, I learned how to do basic OpenGL and GLFW drawing by writing a program to draw a 'triforce' of triangles.


Hero Homeland Drawn in L00B

In part two of lab zero, I experiemented with scaling and rotating in addition to translating by creating an image of Flora Lupine's homeland.


Lab 01

Hero Homeland Drawn in L00B

In lab one, I learned how to implement keyboard and mouse intractions with callbacks to interface with OpenGL. The result of this project displays a spinning 'triforce' that moves along with the user's mouse.


Lab 02

Flying through Rectangle City

In lab two, I learned how to implement a freeCam model to view a generated city of triangles. The yaw and pitch of the camera are changed by clicking and dragging the left mouse key while moving forward and backward is controlled by keys 'w' and 'c'.


Lab 03

Hellknight

In lab three, I explored MD5 models which implemented skeleton animations and skinning.


Assignments


Assignment 1: Hoist Your Sign

Hero Sign Drawn in A1

In Assignment 1, I created an OpenGL program off of the basis of Lab 01 to draw Flora Lupine's sign representing her name and hometown. In this program, I incorperated OpenGL primitives like GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, and GL_LINE_LOOP. Additionally, several different colors were used in the letters, and and each letter involved some sort of scaling, rotation, or translation.


Assignment 2: An Unexpected Journey

Hero in Homeland

In Assignment 2, I created a 2D program to display my interactive hero. My hero follows the cursor with her eyes and is continually marching. With the WASD or arrow keys, Flora Lupine can explore the homelands of different heros. While pressing the 'F' key, the user can click the left mouse button to see a rectangle fly accross the scene.


Assignment 3: To the Arena

Hero Vehicle in Forest

In this assignment, I created a 3D world containing a vehicle for my hero Flora Lupine, which can be found at a crossroads in a forest. The teapot portion of the vehicle uses idle animation to rotate back and forth. This assignment uses a customer shader program, keyboard and mouse inputs, an arcball camera, and other features.


Assignment 4: Off to Never Never Land

Bezier Curve w/Cage and Points Bezier Curve w/o Cage and Point Skybox

This assignment is built off of my group's midterm project, with its world and scenery. The world can now be found within a skybox sphere using a sky texture. A hero can be chosen with the n key and then move around with the awsd keys. When setting up the world, the user will be asked to specify an input file of control points; the file data/novel_control_points.csv has been provided. The bezier curve is created and centered around the chosen hero. A hierarchically drawn winged creature continuously moves along the curve. Both the curve components and winged creature move along with the hero. The t and y keys can be used to toggle the view of the curve and control points.

Assignment 5: The Barbarian Horde

The Game World Enemies Circle Hero Hero Falls Off World Enemies Falls Off World

In this assignment, I created a game where the goal is for the user to obtain more rings tha the enemies particle system do. At the start of the game, the user can choose how many enemies they must compete against. Both the user and the enemies obtain rings by collision. If the user collides with an enemy, the all of the user's rings are dispersed back into the world to be regathered. If two enemies collide, they bounce off of each other. If either the user or an enemy goes over the edge of the world, they indefinitely fall into oblivion; after the user falls a certain height off of the world, an end of game message is displayed to the user. Once all of the rings have been obtained, there is an end of game message displayed in the console to the user reporting whether the player won or lost. The player rotates back and forth if they are moving. The enemies flap their wings as they circle the user.


Midterm Project

Bird's Eye View of Velakaal Flora

The 3D land of Velakaal Flora can be found on the journeys of the three heroes Velaseriat, Makaal, and Flora Lupine. This land is filled with buildings, trees, and animated clouds created with custom vaos and shaders. Moving through this land, it can be explored by each character from the lense of an arcball camera, free camera, and even a first person camera and viewport. The full Phong Reflectance Model using Gourad Shading implemented through a directional light, a point light, and a spot light bring this world to life.

Hero 1: Velaseriat

Velaseriat

Hero 2: Flora Lupine

Flora Lupine

Hero 3: Makaal

Makaal

Arcball Camera with First Person Viewport

Arcball Cam and FP Viewport

Final Project

The goal of this game is to find all the hidden objects scattered around the world before time runs out. Throughout the 2-minute time limit, the user will get helpful messages displayed in the terminal reminding them when time is running out and then displaying the final result of the game. The hierarchical and animated player can move around the world with the controls found in the following section. A custom shader allows the hidden objects to become a darker shade of blue as the player approaches them and the player can obtain a hidden object by walking through it. Another custom shader is used to give puddles found in the world a gradient of blue based x-values, as well as give it movement by changing its y-values based on time. An easter egg speed boost can obtained found by swimming in one of the two above water puddles. Lighting illuminates the world with the sun point light and a spotlight that shines directly above the player and stays above the player throughout the game.

The World of Search and Find

The World of Search and Find

Find All of These Hidden Objects

A Hidden Object

Ooh, a Puddle!

A Puddle

Can You Find the Easter Egg Location?

Easter Egg