Great point about the warping issue in my demo. I use a solver to produce a quadratic polynomial that maps in-angles to out-angles. I feel like the coefficients produced by the solver don't fit the data very well for pixels far away from the black hole, resulting in zooming / warping. I'm going to dig into it a bit and see if I can produce a better polynomial.
UPDATE: Just made a quick change. The solver was only attempting to match data up to, but not through, the FOV limit, which meant that the polynomial did not fit data near the FOV limit very well. I updated it so that it now uses data up to and beyond the FOV. There is still a bit of warping for far away pixels, but there is substantially less than before. Thank you for the tip.
[1] https://www.youtube.com/watch?v=FCoxYlpJq9s&t=1m13s [2] http://upload.wikimedia.org/wikipedia/commons/d/d6/BlackHole... [3] http://en.wikipedia.org/wiki/Smoothstep
Love the cat, visible over and under the focal point.