Depth of field obtained with z-depth can lead to very high quality dof
Or you can use the real-time solution I posted here
You can even use different shapes as you can see bellow.
Since it's real-time the quality can decrease depending on how big the bokeh is. But with certain careful chosen values (and small bokeh), the quality can be as good as a post process filter.
car modeled by crymod user vice08
The following solution is a work-in-progress attempt to eliminate the limitations of current dof solutions.
Even with renderers of programs like Maya or 3ds max you have the same kind of limitations when it comes to transparent objects like glass or water or near de-focused objects. The solution would be a true raytraced DOF. But that has a huge disatvantage : a very long render time per frame. That's why when it comes to rendering movies, most will turn to a z-depth post process solution.
The following cryengine renders show a working depth of field even with transparent objects, similar to a raytraced solution. The render time is high, but they are still much faster then ... for example - a Mental Ray render.
near de-focused objects and glass