There are examples of such effects you are talking about in many games. First, there is Depth of field, which makes object at a distance look blurred, just as if the camera is focusing on things only close to it, like in this example. You can explore more samples related to this in the DirectX SDK package- they have sample code there too. For OpenGL, you will get them on the net if you search.
The second thing you may want to see is what is maybe known as Geometry MipMaping or Progressive Meshes which, like the name suggests, is similar to texture mip-mapping, but for geometry. The number of polygons in a mesh is reduced as the object gets further away from the camera. This helps in increasing performance. In D3D, there exists a function which will help in generating Progressive meshes automatically. Here it is:
HRESULT WINAPI D3DXGeneratePMesh(
const DWORD *pAdjacency,
const D3DXATTRIBUTEWEIGHTS *pVertexAttributeWeights,
const FLOAT *pVertexWeights,
Here's an example of this:
Consider the following image-
This is the camera's culling frustum. The line that goes right through the middle is the LookAt vector. Now, assuming the player will always want to focus at the centre of the screen, you define the angle x. Any object that will be positioned at an angle more than the decided x will have a low resolution rendering, and the ones which are within the angle will be rendered with detail. Like this, the objects at the centre of the screen will be more detailed than the ones on the sides. For if the player is not looking at the centre, then just adjust that centre line to the direction in which the player is looking at. ( or maybe rotate the whole camera to that direction).