# What techniques have been used to repeat geometry or other detail to the infinite horizon?

When I composed my first hopping cube video

I would have liked to have the camera pitch up enough to show the horizon, except I didn't have enough geometry to extend the cobblestone street and the sidewalk all the way to infinity (mostly because that would require infinite stuff). Even in that shot it is clear that I need to widen the "sidewalk" to cover up the "sky"box.

Contrast with

where the ray tracer can use the procedurally replicated geometry.

http://www.pasteall.org/blend/29031 is a failed attempt at faking out the horizon, even with low detail. It fails because lighting's interaction with the geometry gives it away.

Some techniques that prevent you from having to deal with infinity include

• put the scene in a box (usually a room)
• put the scene in a canyon (which is just a box without a top so you can see the relatively featureless sky)
• route the road into a tunnel, or around a corner and hide the horizon with other geometry (which is really just a variant on the canyon).
• have no detail on the ground at all (flat color or gradient)

Those are all dodging the question of interest to me:

What techniques have people used in blender to fake various kinds of detail repeating into the distance (instead of just obstructing the view of infinity)?

To give the impression of infinity, often it's not necessary to copy the object many times at all. you will notice that in the example image only about 8 or 9 repetitions are visible, the implied continuation of cubes is hidden behind a white glare.

One way is to do this is by using an array modifier. One issue with this is that it is not the most efficient, as the array modifier creates new geometry every time the source is repeated. To use the array modifier to make instances (references to a single copy of the mesh data, rather than actually copying the mesh data), e.g. using Dupli objects:

1. Add a plane (ShiftA> Add > Mesh > Plane) and add an array modifier to it.

2. Parent the object you want to repeat to plane (select the object, then the plane, and press CtrlP>Object)

3. Enable Duplifaces on the plane under Properties > Object > Duplication.

Using this technique, you can duplicate fairly high-poly objects many times. In this example I duplicated a 4500 vert cube thing 100 times without any trouble. When I tried this with a straight array modifier (without the dupliface trick) the viewport was quite slow and the array modifier took about 30 seconds to compute.

Cycles is actually pretty good at rendering large amounts of instances like this.

Some examples:

Note that depending on the scene, there might be other optimizations you can do, e.g. using baked texture maps and lower poly models for far away objects.

• I used followed the steps listed here but selected Properties > Object > Duplication > 'Faces' instead of 'Group' and it worked perfectly. Awesome tip. – MarcClintDion May 9 '14 at 10:00
• The duplicate-on-empty technique is working for me at the moment, and while I haven't really pushed it "all the way" I am optimistic. – Mutant Bob May 9 '14 at 14:37
• @MarcClintDion I'm confused.. I don't remember mentioning anything about dupligroups in my answer? I did mention duplifaces though.. – gandalf3 May 9 '14 at 17:58
• I see where the confusion is coming from. I was responding to Mutant Bob because he said that he was using 'groups' instead of faces. It was the first comment, he deleted it so now it looks like I was correcting you. – MarcClintDion May 10 '14 at 16:00
• I started experimenting with Duplication/Faces this weekend and discovered an interesting "problem" regarding orientation which led to a new question – Mutant Bob May 19 '14 at 14:28