Food for thought: is it possible for the point to miss short of the surface? Obviously we need to limit how far up the projection to surface can go, but how much is appropriate? In addition, how do we know which way the surface is? I anticipate these things being potential hurdles in Assignment 3.
Good questions, I'd imagine finding the nearest projected surface point that is closer to the ray's origin may work. There are many different ways (that are probably easier to implement) to resolve this issue as mentioned in the previous slide.
I'm not really sure how this remedy actually avoids any floating point precision problems, because I feel like if there were issues representing the point of the intersection at the scale that we're currently at, then another calculation doesn't seem like it would exactly be able to improve said precision. Also, it feels like it wouldn't be much extra work to modify this to divide the distance between the surface and the intersection by the cosine of the incident angle. Then you could step back along the direction of the ray by the computed distance, and successfully compute the true point of the intersection, instead of a point which isn't actually on the ray. Or does this modification I proposed actually hurt the precision of the calculation, kind of giving us back our original issue?
I think that your proposed modification has similar precision problems as the distance between the surface and the intersection is likely small so dividing by the cosine can give similar numerical issues. Additionally if you notice a few slides ago from the example with a circle intersection the problem still exists even when the incident angle is 0. In my opinion the main point of this is that instead of arbitrarily increasing precision so this does not occur it can be computationally better to get a good approximation of where that point would have landed on the surface.