Animating vertices in a Surface Shader
Now we know how to access data on a per-vertex basis, let's expand our knowledge set to include other types of data and the position of a vertex.
Using a vertex function, we can access the position of each vertex in a mesh. This allows us to actually modify each individual vertex while the shader does the processing.
In this recipe, we will create a shader that will allow us to modify the positions of each vertex on a mesh with a sine wave. This technique can be used to create animations for objects such as flags or waves on an ocean.
Getting ready
Let's gather our assets together so that we can create the code for our Vertex Shader. Follow these steps:
- Create a new scene and place a plane mesh in the center of the scene (GameObject | 3D Object | Plane).
The
Plane
object created may seem to be a single quad but, in fact, has 121 verts that we are going to be moving. Using a quad would provide unexpected results....