6
$\begingroup$

I would like to be able to modify the height of vertices on a plane using a bézier curve. I sculpted a example of what I would like to do: sculpted plane

For my case, I would need the deformation to be somewhat smooth (i.e. the change in height is greatest at points closest to the curve, and then dampening off as they are further away, until they are far enough that they are not changed at all).

Is there any way to achieve this?

I have tried going a different route, using the curve + array modifier but I end up with undesired results like this.

I am comfortable with trying to write a custom script if needed; but was wondering if there is already a built-in method or known plugin that does this?

$\endgroup$
9
$\begingroup$

You can, but you will have to use a workaround.

enter image description here

The principle is using a Vertex Weight Proximity modifier to influence displacement strength.

Issue is unfortunately you can't really use a bezier curve object directly, so you will have to use a mesh object with an Array modifier plus a Curve modifier to affect the displacement.

Just array to any mesh (possibly a simple cylinder) and add an Array modifier set to Fit Curve. Then add a Curve modifier on top of it, point it to the same bezier curve as described here.

enter image description here

On your (soon to be) deformed mesh create a vertex group and add all vertex to it. Then add a Vertex Weight Proximity modifier set to control that same vertex group in Distance to Geometry > Face mode.

enter image description here

Now add a displace modifier influenced by the above vertex group as described here, adjust values and distances as necessary.

enter image description here

| improve this answer | |
$\endgroup$
  • $\begingroup$ This is great, thank you! I have to ask one more question if you don't mind.. what is the resolution (or poly count) of the plane in the examples above? In my attempt, I had to subdivide it to 2.5M+ verts/faces and 5.0M+ edges in order to make the deformations not look jagged, which I'm not sure is what you did in this case. lol. Is there a better way to make the plane deform smoothly, other than subdividing it? (I used subsurf modifier) $\endgroup$ – Bureto Feb 4 at 18:31
  • $\begingroup$ I guess I should also mention my pipe/bézier curve was also subdivided to form a quite smooth surface. I used smooth shading for all the meshes as well. I sense that the jaggedness is due to the curved nature of the deformation not well suited for "discrete" grid-like subdivisions. Perhaps there is a way to "subdivide" the faces only at parts where the mesh is deformed? That would be ideal as most of the surface is left unaffected, so is completely wasteful in my case. $\endgroup$ – Bureto Feb 4 at 18:42
  • $\begingroup$ Nevermind, I learned I am able to smooth them out with limited dissolve + decimate modifier. Thanks again. $\endgroup$ – Bureto Feb 4 at 19:17
  • 1
    $\begingroup$ "* I sense that the jaggedness is due to the curved nature of the deformation not well suited for "discrete" grid-like subdivisions.*" Bingo. In those tests I just used a Subdivison modifer set to 5 or 6 iterations, but displacement is an inherently inefficient modeling technique $\endgroup$ – Duarte Farrajota Ramos Feb 4 at 23:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.