On 6/5/2018 at 9:50 AM, Gnollrunner said:
I'm curious, why do you want to do this? I think your eye does the same thing to some extent so it's actually less realistic.
Your eyes do not distort images that are off-to-the-side this way. This happens because the spherical space around your head and in your field of view in real life is being projected onto a flat plane in the renderer. This adds distortion that was not previously present, very obviously (since it is literally distorting a spheroid space into a flat pyramid).
In reality, if the sphere had moved to the side, it would only seem as if it had changed distances from you (it moved farther away by moving to one side) and retain its spherical shape. You can verify this by simply turning in place to look at the new sphere. Nothing about the sphere will change from your perspective except that it moves to the center of your vision.
In non-ray-traced computer graphics (and in most ray-traced scenes), the sphere, as projected for rendering, will retain its distance from you as it moves left and right. Note that in the physical world of the game (inside the CPU simulation), a vector from the moved sphere to your head will match reality (it will give you a larger distance as the sphere moves to the side, exactly matching reality)—this issue is related to the projection.
Because of the projection, the sphere will cover the exact same range of depth values as it moves across the screen (check the depth buffer). That means the near and far points of the circle have the same range of Z values as it moves left and right. This is not consistent with reality and causes the stretching you see.
In reality, you see the world this way:
You just don’t notice because your field of view is limited to such a small range that you don’t notice that straight lines curve away from you, but whether you notice it or not it is physically and mathematically impossible for this not to be the case, no matter how small your field is.
But as mentioned, this is not an issue. There is nothing here to be fixed. This is completely expected behavior for games, which do not gather photons from a perfectly simulated game world.
L. Spiro