Um, it's not a simple process unfortunately.
One way to do it is to render to a buffer slightly smaller than your viewport, then copy that image to the screen, scaling it up slightly as you go. That works OK, but tends to blur things.
Another method is to render the scene twice or more from slightly different angles. Blend the two images together and you get a pretty good image... but you have to render the scene twice. You can do some cool depth-of-field effects with this method. There's actually something called an "acumulation buffer" in OpenGL which is designed for this sort of thing, but it's really hard to implement so a lot of graphics cards don't support it very well. You're better off rendering to several buffers and blending them together.
I imagine you can do a pretty good implementation with pixel shaders too, if you want to dip in to GLSL.
One way to do it is to render to a buffer slightly smaller than your viewport, then copy that image to the screen, scaling it up slightly as you go. That works OK, but tends to blur things.
Another method is to render the scene twice or more from slightly different angles. Blend the two images together and you get a pretty good image... but you have to render the scene twice. You can do some cool depth-of-field effects with this method. There's actually something called an "acumulation buffer" in OpenGL which is designed for this sort of thing, but it's really hard to implement so a lot of graphics cards don't support it very well. You're better off rendering to several buffers and blending them together.
I imagine you can do a pretty good implementation with pixel shaders too, if you want to dip in to GLSL.