0
\$\begingroup\$

I'm trying to deform my mesh but the vertices cause these straight edges to occur where the inner mesh passes the outer mesh and create an awkward shape.

enter image description here

Why does the orange outline of the mesh not match the vertex distribution? The red squares are the outer mesh vertices and the black are the inner vertices and none of the inner vertices seem to pass the outer vertices so why is it creating this shape? What possible approaches are there to fix this?

\$\endgroup\$
2
  • \$\begingroup\$ I'm not entirely sure I understand your question but ... The orange line there is a silhouette from the current perspective and effectively draws the smallest bounding shape it can fit around all the vertices of the selected object (from the current camera perspective). If you could edit your question to include a before/after step, or perhaps explain how you're using the terms inner and outer mesh (is that deformation radius or ??), we may be able to help more. \$\endgroup\$
    – Basic
    Sep 23, 2021 at 19:07
  • \$\begingroup\$ @Basic Here's the deformation in action imgur.com/YpiWHyl When I say outer vertices i mean the red vertices that are the edge vertices and the black vertices are the vertices that are closer to center of mesh than red vertices in terms of distance. \$\endgroup\$ Sep 23, 2021 at 19:45

1 Answer 1

1
\$\begingroup\$

Look at the bottom two orange vertices, for example, marked with arrows below. They're part of a triangle that includes another vertex that's been pushed a long distance away from them, marked with a blue arrow.

enter image description here

When you moved your vertices, it looks like you didn't change the triangulation of your mesh, so the yellow triangle that joined these three vertices got stretched all the way from one end of the U bend to the middle.

A single triangle can't bend. All it can do is make a flat plane between the straight-line edges joining its three vertices. If those straight lines cut diagonally across an area that you'd prefer to be a smooth bend, there's no intermediate points within that span to tell the GPU that you want it to do something else.

So: when deforming your mesh, avoid creating long skinny triangles like this. Or, if you need to move vertices far away from their neighbours, you may want to look into adaptive subdivision and re-triangulation, to change your mesh topology so any long span like this is broken up into smaller triangles that better follow the curve you want.

\$\endgroup\$
7
  • \$\begingroup\$ This is the case even if I add vertices dynamically like shown here? imgur.com/YpiWHyl @DMGregory \$\endgroup\$ Sep 23, 2021 at 19:46
  • \$\begingroup\$ Because you still have some triangle which has at least one vertex on one side of the concavity and one vertex on the other side of the concavity, forcing that triangle to bridge across the concavity to connect them. To avoid this, you MUST remove any such triangle and replace it with one or more triangles that do not bridge the concavity. \$\endgroup\$
    – DMGregory
    Sep 23, 2021 at 19:48
  • \$\begingroup\$ would something like this work? i.imgur.com/hwBcI4e.png violet verts are the added ones @DMGregory \$\endgroup\$ Sep 23, 2021 at 20:14
  • \$\begingroup\$ If the way you move the added vertices and choose when to subdivide triangles adheres to the rule I described above, yes. If it does not, no. I can't determine those choices from the image you've linked. \$\endgroup\$
    – DMGregory
    Sep 23, 2021 at 20:47
  • \$\begingroup\$ I can't seem to find any tutorials on this topic except for shaders which is not the application I'm going for. Are there any documents you recommend that I could look at that could help me understand this topic better? @DMGregory \$\endgroup\$ Sep 24, 2021 at 18:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .