Just a little confused about details.
1)For step4: find the point at each edge minimizing quadric error, does x = -B^(-1)w gives the result point(with the smallest cost for this edge) right on the edge instead of outside the edge? Or perhaps doesn't matter whether the point is outside the edge?
2)For the last step in the loop: update cost of edges touching m. Since the faces and normals have changed after the collapse, do I need to calculate from the beginning? Just like: compute K for each new triangle - compute the sum of K for all vertexes - computer sum of K for all new edges touching m
1) It doesn’t need to be along the edge; just the point in space that minimizes the quadric error.
2) No, the beauty is that you don’t need to recompute from the beginning: the quadrics accumulate all the information you need about distance. In particular, you just have to compute, for each edge touching the new vertex, the sum of the quadrics at the two endpoints, and then the optimal tentative location for a vertex if that edge were collapsed. The energy of that tentative position gives a new score for the edge.