rogerborg wrote:Yes it's do-able, in fact it's not very hard to do at all.
Care to revise that answer?
I've done it so far, but it required so many rewrites I can't recall all the files I had to change. You can't do it with a single view matrix, you have to change how it's specifically drawn to the screen by section. Which, mind you, ended up rendering too slow on my computer to be worth implementing.
I ended up just making it a pre-run-time vertex processor. If you want the formula to do so, I can give it to you all.
Just render the individual vertex at an additional distance on the z axis based on the distance formula times the strength of the lens.
Frankly, modern home computers can't handle a realistic reflex lens smoothly. However, if you'd like to see one in action, keep an eye out for the PS3 debut of FFXIII, where the CG is rendered in real time using one.
Sorry for the let down, folks.