Sea of Clouds

Project break down: Shaders

For the purpose of optimization, I choose to use world position offset as the core of this shader. By combining the primary and secoundary noise pattern and multiply it with the vector normal worldspace, the basic shape of the moving clouds are established.

After that, by adding the result by a new variable created by a render target, this shader will be able to determin the location of the player, and change the vertex position around it.

Sea of Clouds

Project break down: Player Interaction

The core function uses two render targets in a ping-pong update loop. The player’s position is written into Render Target A and the result is stored in Render Target B. In the next frame, the system reads Render Target B, adds the player’s position influence, and writes the result back to Render Target A. The cloud material always reads from the latest render target.