A little trick I have discovered for Cycles (although it might work in BI too). I have tried this on this scene from The Architecture Academy:
500 samples, 1080p
Time Before: 1:45
Time after: 0:12
A huge difference. I will try to explain what I did. Consider the fact English is my second language.
Here’s the idea:
Before the rendering, Cycles collects all the information it needs about the scene in order to render. If the required memory is more than your GPU (or CPU) limit, it will fail to render, saying: “CUDA error: out of memory”. Luckily, my GPU didn’t have enough memory, as the textures were very big, and my GPU has only 2GB. So I tried to resize the textures in order to use less space. For example: every book in the shelf had a texture with HD resolution but its area in the frame was very small. So I took every book texture one by one and resized them. At that point I was able to render the scene in one hour and 45 minutes. A lot! So I continued resizing all the textures massively. After all that hard work, I got to rendering in 12 minutes! Such a huge difference!
So I thought, why does Cycles not do that automatically? Here is what it needs to do in the Pre-Render process:
Copying all the textures
Checking the area size any object takes in the frame.
Resizing the texture according to that size.
Render the scene using the small textures.
Delete the small texture and bring back the others.
This might save, as you see, more than an hour to the render. I think it is not so impossible to program, and the computer won’t need more than a few seconds to do this. Unfortunately, I am not a programmer, but it will be awesome if some of you guys can program it. A similar thing can be done with Subsurf amount, to reduce polygons amount.