I agree that dot is not the best start for 2 vectors on the mesh. I think the reason dot works is that the calculation happens on every pixel of the mesh.
realistically, the formula itself doesn’t matter.
even with vertex color I have no way to say “for this inital vertex set calculate the direction based on -math-” and use it in the formula…