- Home /
Conforming a mesh path to arbitrary surface - runtime
How do you draw a mesh path at run time on an arbitrary surface - similar to this demo, but during runtime.
Supposing you have a predetermined path (on a 2d surface) - what is the best way to project it to the arbitrary surface?
Are there methods better than raycasting?
Answer by Peter G · Feb 06, 2011 at 01:50 PM
You do it the same way you do it in the editor. You move each vertex down until it hits something then you leave it (You probably place it slightly above the terrain so there is no z-fighting). How you do that depends on you. I don't know how they did it, since it was a terrain, the most efficient way would probably be to get the interpolated height at the vertex of the path and drop it to that point.
You could also try using Raycasting. The fact that your path is flat won't help this method much because there is still a non-uniform distance to the surface, and it is an expensive method to call and if you have many verts, it would slow down performance considerably during the frame that you call it.
If your looking for an easy way, just use a projector and project the path downward. It will line up perfectly with the ground, but you have to redraw everything the the projector shines on so it will add some more draw calls.
*updated question slightly - case where the path is predeter$$anonymous$$ed on a flat surface... just need to project it onto arbitrary surface
Raycast would be a one time performance hit, projecting would be the same hit every frame.
Your answer
Follow this Question
Related Questions
Deleting one triangle out of mesh? Cut hole in mesh in runtime? 4 Answers
Check if a mesh has UV map at runtime 1 Answer
Runtime import of Collada files 3 Answers
Mesh creation during runtime 0 Answers
Create the visual spring in Unity? 3 Answers