Is This Geometry Too Complex for Cycles?

Greetings. The first image is a Cycles render with AO and only direct lighting, and the second image is a Cycles render with bounces after 4096 samples. Obviously, this render is worthless. I have a tried anywhere from 1 to 128 bounces with little difference in noise. I have also changed the light sizes with little difference. The geometry is thousands of small, displaced cubes. There is a sun light shining down the steps and a few point lights in the holes.

Is geometry like this too complex to render with light bounces? Am I only able to use fake lighting? Would a bidirectional pathtracer like LuxRender be able to render something like this without much noise? I would like to make this work, but I want to be practical as well.

Thank you. I would appreciate any other feedback that you think would help.

Check your normals are facing in to the scene. It’s one of those types of scene where it’s all to easy to have the normals pointing the wrong way.

All the normals are facing the correct direction. The issue just seems to be that the extremely uneven surfaces bounce light in many directions. I had similar issues in another scene when attempting to add pebbles on the ground with a particle system. The pebbles made the scene impossibly noisy (Edit: It was also an interior scene where indirect lighting was significant).

That’s the worst case scenario for Cycles, as there’s almost none direct lighting, and all the light on the scene comes from bounced light.

It doesn’t matter if there’s lots of geometry… Cycles simply doesn’t know where to start searching for light, so it will sample the whole scene looking for it. Because the light is only coming from a very small region, the chances that Cycles will miss that area are big, and therefore full of noise.

You could place an area lamp in the entrance and so illuminating the interior directly.

Are you using portals?

I see. I made the surface smooth, and it still had the issue. I should have checked that first. Anyway, your suggestion is what I would consider to be “fake” lighting. Just adding lights does not get rid of the noise; it just lights the scene more (I just tried it). To get a clear render, I still have to disable bounce lighting and add fill lights (which I have done successfully).

There is no need to use portals. Portals only work for image-based lighting to tell Cycles where the lights are. I am using Lamps, so Cycles already knows where the lights are. I tried portals in this scene just to be sure. It would be awesome if you could use portals to guide Cycles to significant sources of indirect light.

You should also use Filmic for the color management. It balances the light in these conditions far better than the default sRGB.

btw, there’s also another trick that can be used, but needs some work… Separate the illuminated faces into a new object, and baking the diffuse (all of it, color, direct and indirect) to a 32b float image. Then you can have a material that acts as normal for the camera rays, and emission (with that baked texture) for rest.
Cycles will mark that object as emissive and will sample it more efficiently.

I have marked this as SOLVED since Secrop pointed out that this has nothing to do with the geometry. This is just an interior lighting scenario. This was just a scene that I threw together for a tutorial on proxies. I asked this because I was concerned about my assets being impractical, but that is not the case. Thank you.

I have done this in the past, but not quite like this for this reason. I wonder if using an Add shader to add an Emission shader of Strength 0.0 to a material would increase the sampling efficiency without baking.

I don’t think that will work… IIRC, there’s some part of the code that filters lights that don’t contribute for the scene (this includes lights with no intensity).

Just to not get the hopes up too much, filmic is a post-render color transform, it can’t help with sampling efficiency. It can only balance the light that already is there, but currently the problem is lack of light alltogether.

Personally I would throw in a decent amount of AO to get this thing brightened up.

Can you share the scene?

A very analogous situation would occur with real studio photography. Such a scene would be lit with many lights, artfully placed off-camera, in order to ensure even exposure of the film in addition to the “practical” lights (things in-frame that in the real world “emit light”), and “scenic lighting,” such as the fact that light is streaming down the staircase or from beyond those doorways.

At no point would the studio photographer expect to be able to walk into the actual scene, as actually lit by torches and Mother Nature, and snap a credible picture good enough to print in a magazine. (In fact, I once assisted in an Arizona Highways centerfold-shot which produced a beautiful picture of the interior of a hotel, with sunlight streaming through the windows and so on … which was shot at one o’ clock in the morning on a moonless night. 100% artificial lighting. Utterly convincing, nonetheless. They spent days ahead of time calculating the color, placement, and power-level of each light, and I recall that they shot very few Polaroids.)

Another very-pragmatic thought, to me, is this: "you have two good renderers at your disposal – Cycles, and BI – plus the ability to combine the two with perfect accuracy. I usually work with BI for most things, and sometimes use Cycles in addition to it as “a marvelous soft-box,” able to handle indirect and bounced lighting in a very convenient way. However, I don’t readily see anything in this scene that would particularly “call for” the use of Cycles’ algorithms, so BI might be easier to set up and faster.

Cycles is perfectly capable of creating fake GI if that is what you prefer (you have AO nodes, you have the new AO approximation feature, you have lightpaths that you can use to create cheats, and you can make lights that are invisible to the camera as well as to reflections).

Don’t forget that Cycles is an engine that gives you far more than accurate lighting, you also have physically accurate materials that can stand up to all lighting situations (so you don’t have situations where a good looking material becomes crap just because the lighting was changed).

Filmic will not make bad lighting look good. This scene uses Filmic, and the lights have realistic intensities and colors. But, the lighting still does not look very good. Realistic lighting is just a starting point. The reason why the white is still overexposed with Filmic is because it is so much stronger than the other lights. That is just the nature of sunlight compared to other light sources. If I use fill lamps instead of bounced light, I could reduce the intensity of the sun without reducing my internal lighting. It would be like the trick where the intensity of a mesh is less for the camera than for the environment.

The specific issue with this scene is not a lack of light. I can add lights all day without getting rid of the noise. The image will just be brighter. All the contributions of each light are added together. If one light is contributing a lot of noise, that noise will be added into the scene. Your scene will always be at least as noisy as the noisiest light. And, adding more lamps will not help Cycles sample a certain lamp more efficiently.

The issue here is that the sun lamp from the staircase is insanely noisy. As far as I can tell, it is impossible to get a low-noise render as long as the sun lamp has bounces turned on. But, noise in the direct light is still a problem with 0 bounces.

The setup in BI would probably be about the same since, either way, I have to disable bounce light, add fill lamps, and use AO. However, if it is part of a larger project, rendering one troublesome scene in a different render engine will be obvious. The materials are another significant issue. The PBR model for Cycles is great. The only benefit of BI is its speed for direct light + AO. This is where Eevee will be awesome. It will be like BI but with many witty tricks to approximate indirect lighting, and it will support a PBR material model like Cycles.

I am hoping that Blender 2.8 will be released before I am ready to do any final renders (This is just a demo render for a tutorial that I am making). Then, due to the modularity of my workflows, I could have all my materials and scenes ready for Eevee in one day.

Yes, it is just a demo render for a tutorial that I am making. It does have a 16x16 copyrighted image, but I think using it as a stand in for technical testing qualifies as fair use. I am waiting for the final render to finish (I cheated the lighting to clean up the noise). I will try to upload it tonight.

Generaly speaking pathtracers like Cycles render fast with big lights and most of the scene should be lit by direct light. The smaller the direct light is the longer it takes to have noisless image. Your scene seems like an extreme case where none of the lights light the scene directly. In such cases photonmapping or bidirectional pathtracing should lead to better results but don’t expect miracles. You should try rendering the scene with LuxRender. It has many different rendering algorithms so you can easily compare the results.
I would like to check your scene and try to get better results with Cycles. Maybe there are some ways to get faster result without sacrificing the quality.

Here is the file along with a render of the scene setup. I set the sun to have 0 bounces, a smaller size, and a reduced intensity. A fill lamp was placed at the top of the staircase (with the full sun intensity). And, a lamp with 1/4 the full sun intensity was placed at the bottom of the stairs to fake the bounced light. The scene was rendered with 4 light bounces for 2048 samples. I probably could have gotten away with 2 bounces for 1024 samples, though. At one point I rendered the entire scene with 0 bounces, and I had an additional fill light on the ceiling (pointing down). That rendered extremely quickly with a similar result.

The sun lamp originally had a strength of 440. So, if you remove the fill lights and turn bounces on for the sun lamp, that is the strength that you need.


demo-scene.blend (1.89 MB)