I want to draw points at the visible Mesh intersections, like this:
Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2}, Mesh -> {1, 4}, Boxed -> False]
Desired output:

I could calculate where the Mesh is going to be, based on PlotRange and the Mesh cardinality, and draw points there, but I think there should be an easier alternative way.
A big plus is to be able to chose the point color based upon the function value. Also, labeling the points would be wonderful.
Any ideas?