I read some articles that says
As objects intersecting each other isn't physically possible, we have to maintain the realism of the simulation by resolving those collisions by separating them out so that they aren't overlapping.
And to do that, we need to find the separation distance to move it out along the collision normal.
But my concern is that once it is separated, it actually move away from the direction of the original incident ray and therefore a new reflected ray. As explained in below graph
This means a wrong reflected ray for me. Am I doing it correctly or that's simply something that's expected and we have to live with?