Animating vertices in a Surface Shader
Now that 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:
- Create a new scene and place a plane mesh in the center of the scene (
GameObject
|3D Objects
|Plane
).
Note
The Plane
object created may seem to be a single quad but, in fact, has 121 verts, which we are going to be moving. Using a quad would provide unexpected results. To check for yourself, select the Plane
object and...