Rock Throwing

CSC 471 - Tim Kim

initial

Project Description

In this project, I simulated throwing a rock and the rock creating a splash in the surrounding water that it lands on.
I procedurally drew the water so that I could spatially query the vertices that are affected by the area where the rock lands.
To do this, the height of the vertices affected by a rock would have to be updated in a shader where the buffer of vertices is stored.
Based on the distance to the position of the rock hitting the water, the vertices were displaced by a certain height and
lowered in height as time changed. This time variable was being updated on the CPU side of the program, but accessible in the shader.

Some of the other technologies used:
--Blinn Phong Lighting
--Texture Mapping (lava rock)
--Camera Control (WASD keys, scroll to look around)
--Hierarchically Modeled Arm (throwing rock, SPACE to throw and reset)

More Images

Procedurally generated ground

initialtransp

Rock Thrown

thrown

Displaced water from thrown rock

throwntransp

Island above water

island

Island with meshes shown

islandtransp

Resources used

TurboSquid
CGTrader

Useful libraries

glm/gtx/string_cast.hpp - great for printing vectors (in between cout and endl, use glm::to_string(vecname))