zahnae's last assignment--ever.

deep sea atlantis || csc 471 || fall 2020 || prof zoe wood

the scene:

imagine this: the world has finally been swallowed by its inevitable doom, and all that is left of our civilization are the material goods that were once precious underneath water. that's what this scene entails. or a very loose interpretation of what atlantis *should* look like. alas, it was a learning experience. this scene is meant to serve as a cumulative reprsentation of what i have learned the world's best introduction to graphics class.


the features + lessons:

*Generated through this program.


skybox
The skybox method allows for the used to take static textures, project them onto a cube, and grow the cube so that the immediate backdrop is consumed by the textures as it is scaled for outside the user's intended area. I opted for a dark, nebula-esque skybox for my deep sea purposes and binded the textures to a cube mesh accordingly.

blinn-phong shading
Blinn-Phong shading is a method commonly used in computer graphics in order to make the lighting of objects appear to be more realistic. Despite the darkness of the objects in scene, some objects are shaded using diffuse, ambient, and specular lights--specified in the shader.

virtual camera
The scene can be navigated throughout using WASD controls and holding the right click to rotate the view, as the first person perspective normally would. This movement is accomplished through vector calculations based on the user's positioning and movement.

water caustics
The texturing on the ground to simulate water refractions is done through water caustic calcuations achieved through multiple passes of the mesh through the shader, affected by lighting positions above.

texture mapping
The texture mapping is done through preloading textures within the render. This allows for images to be placed onto meshes with texture coordinates.

hierarchical modeling
This implies dependency on another model when determining a model's position. This allows for easier placement of meshes due to them having a shared frame of reference.

more lessons:

The biggest takeaway I had from this class was a thorough understanding of the complexity that is the graphics pipeline. I know understand how objects are generated and then colored, in addition to how to generate cool effects with the help of the right buffers. Also, vectors will never disappear from your life. If I had more time on this project, I would want to try to make my scene even more underwater than it already is.

references:

water caustics tutorial


free models


texture mapping


all of the provided lab/assignment code