CSCI 441 - Computer Graphics

Fall 2024

|     Home   |   Assignments  |   Leaderboard  |   Schedule  |   Resources    |

"Dren"


Behold the Dren ambigram and hometown crest!

Assignments

Assignment 2:


This assignment involved drawing Dren in separate components so that each part could be moved individually or as a collection. Drawing in this way allows for animations to modify multiple pieces at the same time. My animation had arms that waved up and down while holding an axe. The user was allowed to click w, a, s, or d to move him around and if he went off screen a new scene would appear. Clicking the left mouse button interacted with the axe by displaying it, throwing it, or hiding it.

Assignment 3:


This assignment required implementation of an arcball camera that was fixed about the people mover (Dren inside of a mine cart) as well as Gouraud shading with the Phong Reflectance model for lighting. The program allowed the user to move the mine carts with W for forward and D for backward then A and D for rotating the orientation and constrained movement to remain on top of the grid.

Midterm Project:


For this project, 2 other groupmates and I rendered our 3D characters into a custom environment filled with trees, lamps, a beacon, and a skybox. The Skybox uses a cubemap texture shader and the environment uses the phong reflectance model with Gouraud shading with point lights in the lamps, a spotlight in the beacon, and a universal directional light. The user is able to switch between each of the 3 characters and use the 3 main cameras that we've implemented being an arcball camera, a first person camera, and a free camera.

Labs

Lab 0:


This lab allowed me to practice drawing images with triangles by specifying points then generating vertex array objects(VAO) by sending the data to the GPU. This image is the hometown of Dren.

Lab 1:


This lab introduced me to interacting with the keyboard and mouse to recieve user input and modify the image based on the input.

Lab 2:


This lab applied working with points, triangles, and user input and translated it to a 3 dimensional world space. The lab used a moveable camera that acts like a plane through moving forward when pressing w and rotates when the user moves the camera while holding the left mouse button.

Lab 3:


This lab builds on working with vertices specified on the CPU and sending them to the GPU by removing abstraction to work more directly with the GPU. We specified the VAOs and the associated vertex buffer objects(VBO) and index buffer object(IBO) then specified how the mesh vertices and texture colors will be formatted in memory.