You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
simplify: Separate attribute quadrics on attribute discontinuities
Initial implementation of attribute metric used the same indexing that
we use for positional quadrics, where multiple vertices with the same
position are collapsed into a single element. This is correct and
optimal for positions, but results in problems for attributes when the
vertex is on a seam: two associated vertices carry very different
attributes, and evaluating any attribute against a vertex from an
opposite side of the seam results in a large error. This results in a
suboptimal collapse sequence and an artificially inflated resulting
error.
This was originally difficult to correct since attributes and positions
shared the same quadrics; because we need to separate these anyhow as
the treatment wrt normalization and scaling is different, we can now fix
this which mostly involves carefully indexing the attributes with the
correct, non-remapped index.
When performing a collapse, it's important to correctly aggregate
quadrics for all edges that are being collapsed to maintain correct
error for future collapses. This change does this for seam vertices
(which is the main use case); for now it's unclear what the correct
strategy is for complex vertices and they are not currently used in the
classification so we can leave this as is.
Ideally during ranking we should also take the maximum error from both
sides of the seam; doing this is more computationally intensive and it's
not obvious that it's necessary (as usually the seam construction means
that both sides behave more or less identically). This can be changed in
the future but for now this should suffice.
0 commit comments