Mesh tesselation/de-tesselation

Does anyone know if OpenGL provides any functionality to tesselate or de-tesselate a mesh? That is, to automatically add or remove detail from a mesh? I’m asking this because I want to use a less detailed model of an object when it’s farther away since you can’t see the deatil anyway. Do I have to resort to the brute force method of creating and loading multiple version of the same model and picking the one to use based on the distance? If so, isn’t there ANY automated way to add/remove detail from a mesh without having to totally remodel the thing? Thanks!

OpenGL does not provide this functionality. It is an immediate graphics api, nothing else.
There are many ways to do it, either through your own coding, or using someone elses libraries. SGI have some library stuff that sits on top of OpenGL and does mesh loding/tesselation I think.