The animation I'm planning involves zooming in on a stainless steel ruler all the way down to the atomic structure in a single shot which would involve passing through the following levels of detail:

  1. Shiny brushed stainless steel ruler with numbers and markings as additional texture (photo realistic).
  2. Etched depressions that make up the markings.
  3. Scratches / pitting that make up the brushed texture.
  4. Grain boundaries* (see note below).
  5. Packing of atoms within the crystal grain.
  6. Individual atom within a crystal grain (fuzzy ball of questions & confusion).

*note: steel at the atomic level consists of grains of crystal clumped together where the atoms that make up each grain are arranged in an orderly matrix, the grain boundaries are where the axis of the different grains don't line up.

So my question is what plugins and techniques can people suggest to accomplish this as painlessly as possible.

I'm thinking I may be able to approach it by modelling a large enough patch at each detail level to just fill up the camera and then somehow stealthily transition between the texture at the larger level and the detailed model at each stage as the magnification increases.

Alternately via the python API generating a dynamic texture dependent on the current zoom level of the camera something like a fractal texture [just spit-balling here - haven't even looked at the API yet].

  • 1
    $\begingroup$ related (context) : Powers of Ten by Charles & Ray Eames youtube.com/watch?v=0fKBhvDjuy0 one of the biggest zooms ever :) $\endgroup$
    – zeffii
    Commented May 14, 2015 at 15:39
  • 3
    $\begingroup$ Render static (or animated) images and composite them exactly like this: videocopilot.net/tutorials/earth_zoom its explained how. You can do this also inside Blender. $\endgroup$ Commented May 14, 2015 at 16:09
  • 1
    $\begingroup$ The problem won't real be the textures, but the camera clipping; increasing these won't really work, as there tend to be artifacts. $\endgroup$ Commented May 14, 2015 at 18:34

2 Answers 2


You will have to blend two shots together. Its most likely impossible to get the geometric level of detail at the atomic scale that will work for a macro shot. I would model the scene with the ruler, with some textures etc.

Then add some procedural textures for pits, scratches, etc. That way we can continue to zoom in without becoming pixellated.

Next model a completely different scene that is molecular in scale and have a zoom animation in both scenes that match up. Once your first scene gets close enough, start blending into the second screen. You could use the compositor, or maybe just a plane in scene 2 that has a texture of the rendered video from scene 1. As you get close in on scene 2, adjust the transparency of that image plane.

Good luck!


You could try changing the clipping on the camera object so that the bounds are very large, allowing for it to see things very far away AND close up, and making the whole ruler extremely large. You could also change the lens length of the camera with keyframes, to add to the zooming effect.

EDIT: This is a very hacky and clunky solution; see below.

  • 1
    $\begingroup$ That won't really work as bigger clipping ranges tend to generate more artifacts. $\endgroup$ Commented May 14, 2015 at 18:32
  • 1
    $\begingroup$ @Poyo having the clipping point encompass large and small magnitudes is likely going to create z-fighting errors, due to lack of of precision on the z-depth. Usually you want to restrict the clipping distance only to necessary distance in your scene. read: blendermama.com/black-faces-error-from-camera-clipping.html . Dynamically changing the clip point distances would be a better approach. But that is only one part of the problem. The biggest issue is figuring a way to change the resolution of sculpted objects and textures going through a change in a large number of magnitudes. $\endgroup$
    – user1853
    Commented May 14, 2015 at 18:32
  • $\begingroup$ @cegaton maybe that can be solved by setting keyframes on clipping values? $\endgroup$
    – Denis
    Commented May 15, 2015 at 5:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .