This scene is taking FOREVER to render

…and I don’t really know why.

I have a fairly complex set of objects in the center, a train with several cars, a simple boarding platform and a couple of trees and bushes. Three spotlights pointed toward the subject, raytracing on for shadows.

If I seat them on a small plane I can render the whole thing in well under 10 mins.
(1920x1080, 8xOSA, raytracing, shadows and env. maps on)

As the plane they sit on gets bigger, the rendertime goes up exponentially. I have them sitting on a platter that is 60 blender units wide and it’s taking upwards of 3 hours to render using the same settings.

I think it has to do with shadow calculation, because if I leave everything else on but turn shadows off rendertime seems to go back down again.

I’ve tried putting the “background platter” on its own layer, and instructing the lights to only cast shadows using objects on the same layer, but it doesn’t appear to have any effect.

I’m on the verge of pulling my hair out over this because I’ve used the exact same background platter in other scenes with no such problem.

The blend file is available here:

Any suggestions about what could be causing this would be greatly appreciated.

The one thing thats quite scale dependent in 3d is raytracing calculations…
bigger the objects and further away they get more the ray calculations blender needs to do…
turning of raytrace rendered it in 14secs…
might be more efficient if u can render this in layers and turn on raytrace only where absolutely needed.
ex:render the shadow pass of the foreground objects using smaller ground plane etc …
then the BG as a non raytraced one.

Your issue is typical of the idiosyncrasies of the octree acceleration structure used in Blender version previous to 2.5. The problem is well known for this type of accel structure and is called the “teapot in the stadium”, that is an highly detailed object inside a large low detail scene. The highly detailed object occupy just a very small portions of the cells of the accel structure and the ray tracer needs to test almost every polygon for every ray. In other words, the accel structure cannot do its work anymore.

One way to increase the render time is to increase the octree resolution. But, by far, the best solution is to render your scene in Blender v2.5 which use a set of BVH structures that does not suffer this issue. Otherwise, render your scene with a small size floor and composite the render with the correct background.

You might also consider using buffer shadows. They may not be ideal for a number of reasons, but you can get some very nice results out of them with a bit of work, and (especially in pre-2.5) they’re much faster.

Edit: Attaching a render. The shadows were just a quick (>1 minute) implementation, so they could definitely stand to be tweaked more for quality. This is however a full res 1920x1400 render at 16xOSA, completed in 1 minute and 17 seconds on a mid-grade dual-core.

Just ignore for the time being that the entire hillside in the background is in shadow, because I rushed and put it outside of the shadow clip range. :o

Remove the skydome thing. Replace it with an angular map. After I did that, I was able to render your scene in 30 seconds.


Thanks to everyone who replied. I’m going to test these suggestions right away!