- Home /
Procedural animated mesh
I managed to create a script that procedurally makes a 2D ring shape.
Now I need to modify in real time the ring's inner and outer diameter on every frame, and I don't want to re-create the mesh every frame since that would be pretty slow.
How can I make this shape animated?
EDIT: If I were using OpenGL, I would send another set of vectors for each vertex with the direction from the center of the circle to the perimeter, and in the vertex shader move each vertex in that direction a distance set by an uniform. That way I would not be recreating (or even sending to the GPU) the shape on every frame. Can't that be done in Unity?
Answer by Eric5h5 · Feb 21, 2013 at 06:06 AM
You're going to have to recreate it every frame if you're changing the inner and outer diameter. It's not slow unless your code is unoptimized, especially in this particular case since all you have to change are the vertices.
If I were using OpenGL, I would send another set of vectors for each vertex with the direction from the center of the circle to the perimeter, and in the vertex shader move each vertex in that direction a distance set by an uniform. That way I would not be recreating (or even sending to the GPU) the shape on every frame. Can't that be done in Unity?
Well, if you want to use a vertex shader then you can write one to do that.
Right, you don't actually need another set of vectors. The local position of each vertex is the vector from the center to your vertex. So scaling it's length should be no problem. However you need to identify which vertex belongs to the outer radius and which to the inner. If you uave uv coordinates that might be the easiest way. Another one is using vertex colors. If the shape is pure 2d you can also use the z coordinate to indicate an inner or outer vertex. Just replace the z with 0 for the position and use z for choosing the right "scaling" constant. You would need two float shader parameters to pass in the two scaling factors.
Your answer
Follow this Question
Related Questions
How to apply PBR material to Procedurally generated Mesh? 1 Answer
Procedurally generate 3D mesh from 2D image 1 Answer
Creating 3D representation of procedurally generated 2D tile map 1 Answer
Modifying a procedural mesh using Lists is slow, what else can I use? 1 Answer
Playing animation frame by frame by procedural controller 5 Answers