0
$\begingroup$

I am stitching together parts of a mesh and using normal information to interpolate between the gaps.

I am finding that sometimes I get a difference in the normals due to numwrical impressions:

enter image description here

In the above image one of the normals has a noticeably different angle from the other two, which leads to the formation of a visible ridge in the stitching.

One option I could do, is pass a discrete gaussian filter with 5 weights and then normalize a linear blend of the neighbouring normals. But I wonder if there are better approaches.

$\endgroup$
7
  • $\begingroup$ How do you compute the normals to begin with? Why would you be allowed to smooth those without blurring out the geometry? $\endgroup$
    – lightxbulb
    Commented Oct 18 at 7:16
  • $\begingroup$ This means that you have two vertices in the same position. You can therefore delete one of them and only use the other. One idea is to hash the vertex positions and use one of these vertices. For the normal vector, you can use the average vector or select one of the vertex's normal vectors. $\endgroup$
    – Thomas
    Commented Oct 18 at 8:02
  • $\begingroup$ @lightxbulb as teh angle weighted average of the face normals incident on the vertex. $\endgroup$
    – Makogan
    Commented Oct 19 at 2:01
  • $\begingroup$ @Thomas unlikely that this is the case, meshlab shows that region to contain a single vertex. I think it;s just numerics. $\endgroup$
    – Makogan
    Commented Oct 19 at 2:02
  • $\begingroup$ How did you conclude it's numerical error instead of a specific vertex configuration? You can get widely varying normals corresponding to vertices of the same triangle because they have different 1-ring neighbours. You can see in your picture that the triangulation is irregular where this happens. $\endgroup$
    – lightxbulb
    Commented Oct 19 at 5:04

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.