Automatically picking high-poly / low-poly model based on distance to camera?
The Level Of Detail  settings in Blender 2.7 will be only available in the game engine.

Someone else had an approach to control the subdivisions of a multires modifier using a driver and use the distance from cam to an object.



See this Blog post detailed information and demo file.

It does not support switching different meshes only subdivision nor LoD for different textures.



My approach would be to have different Objects / Meshes parented and calculate the distance from camera to each object. For a quick test I parented a lores version to a higher mesh version of a model.

Like so:


Depending on a distance threshold the visibility of the lores or the hires parent is easily controlled by a script:

import bpy

threshold = 9

scene = bpy.context.scene
camera = scene.objects["Camera"]
cam_pos = camera.location
print(cam_pos)
for ob in scene.objects:
    print( ob.name )
    if ob.name.startswith("Cube.LowRes"):
        d = cam_pos - ob.parent.location
        dist = d.length

        if dist &gt; threshold:
            ob.hide = False
            ob.parent.hide = True
            ob.hide_render = False
            ob.parent.hide_render = True

        else:
            ob.hide = True
            ob.parent.hide = False
            ob.hide_render = True
            ob.parent.hide_render = False
        print( ob.location )       
        print( dist )


If you plan to use this with for an animated camera you could consider adding a bpy.app.handlers.frame_change_pre and call the script before each frame.

Demo file here