Vertex Animation – Blob Reactive System

Description

This project consists of a vertex animation system that simulates the reaction of a suspended fluid’s motion upon contact with a solid body, completely in real time using shaders in Unity. The focus is on manipulating the vertices in the shader to achieve the natural motion effect of a semi-liquid body.

Technical Goals

  • Simulate the reaction of a fluid upon contact
  • Make the system interactive
  • Generate a ripple effect for movement

Tools and Tech

  • Unity
  • Blender

Overview

The Mesh

For this project, I used a high-polygon sphere created in Blender. The smoothness of the motion depends on the polygon density. The UV mapping is sampled over the entire coordinate system.

Shader Interaction System

The interaction is based on Sphere Mask and point-of-contact systems. There are two systems that allow for two points of contact simultaneously.

The Code

The logic is very simple: send the contact location to the material/shader parameter and increase the sphere mask size by the desired speed.

For tracking the contact location I used the following logic for looping between the two contact points.

Conclusion

The resulting shader allows you to simulate the motion response of a semi-liquid body when interacting with solid objects based on the point of contact and generating a vertex displacement from the impact coordinate.

Post-Mortem

This project allowed me to practice and better understand UV systems and the basic elements of shaders, as well as how to expose those shaders to interact with other objects, components, or systems.

In another iteration, I would like to integrate a system with unlimited or greater capacity for the number of interactions that are possible at once between the body and the interactable objects.