Rendering optimisation advice is needed. Cycles, 2.8

Hello. I am working on a medieval interior scene (my first interior attempt) with lots of light sources. I have a huge hall (40 x 30m) which is lit by candles (around 60 point light sources) and moonlight through the windows - I use area light for that. I am relatively new to all CGI industry and a self-taught, so it is hard to determine which render settings should I tweak to achieve the best possible result. The main problem is LOTS of noise, even when I try to render with 5000samples. I am working on a gaming laptop with GeForce GTX1060, core i7 7700HQ and 8gb of RAM. Would be grateful for your thoughts.
This is just a quick render without materials and most of the objects (200 samples, 1/2 full hd resolution, only main geometry) for the general idea what am I speaking about.

Cycles is not great with many and varied sized light sources. Especially mesh lights are problematic, but you’ve avoided them here. A “many lights” patch was mentioned long time ago, but I don’t don’t the status of this.

  1. Use intels denoiser in comp.
  2. Replace moon area lamp with a moon sun lamp.
  3. Render in isolation. First with moonlight only. Then with interior lights only. Then simply add them together in comp.

I tried using HDRI light, then sun lamp and only after that tried area lamps. Somehow HDRI and sun lump gives MUCH MORE noise and fireflies and rendering takes longer time.
Can you please explain how is it possible to combine 2 scenes with different lightning in comp?

I render all cameras out to two (or more) sets of .exr. I don’t use two scenes. Probably could, but never tried.
Then I just add one image to the other. Now I can control intensity and color of the lights independently without re-rendering.

I’m controlling all lights from the world material, where I put node groups for each group of lights I want to control. If I want to disable a group I go into the node group and disconnect the passthrough. This passthrough node group on the light sits between the emission shader part of the material and the output. Emission meshes might have other properties as well (such as a glossy glass), this part of the material is not going through the passthrough.

For less elaborate light setups you might get away with just controlling it from the outliner (not sure why you can’t turn off world from the outliner). But I do more than is shown here (light diodes, lights with constant output regardless of exposure etc), so I have landed on this approach.

This looks promising. I will try to adopt some of your ideas. But I am not sure that I know how to “add one image to another”. So you render your image with some lights on/some off, then render the same image with different set of enabled lights, right? And having both images as an .exr files your next step is… ?

Yes, I’m not surprised that the major contribution to noise comes from the moonlight. Directed light coming through small apertures is something Cycles fails to handle efficiently. Other than using a bidrectional tracer (Luxcore, Yafaray) you are pretty much lost if you want to have it physically correct / unbiased.

You might fake the indirect lighting produced from the moon outside, though. The trick is to determine which surfaces are directly lit and put at these places extra lamps. Then you set up your original lamp such to only allow 1 or 2 bounces, and the extra lamps such to not appear for that many bounces (using a light path node).

Here is a blend file to show the principle (using just one area lamp on the ground below the window):

aperture-light.blend (646.8 KB)

You can see that the accuracy suffers with just a single bounce from the original light (at least without carefully tweaking the extra lamp), but noisy is reduced a lot.

Normal render (256 samples):

Only direct light from outside lamp:

This is a compromise, allowing 1 indirect bounce from the outside lamp:

I wished light portals could be set up to guide rays to the directly light areas similar to this trick, but it doesn’t seem to work for me.

Very interesting and useful information, thank you. In my case I do not need to be physically correct, so faking is absolutely ok. I will try to do it and post my results.

LuxCoreRender really shines in indirect lit scenes like this.

(From: http://forums.luxcorerender.org/viewtopic.php?f=5&t=840&start=810#p11285)

It is hard to say with just pictures where noise is coming from but this scene might work better with branched path tracing. Try setting 64AA samples and leave everyting else at 1 and work up from there.
Unfortunately you will have to disable MIS on all lamps because it introduces additional noise in branched path tracing after Blender 2.79.