how much performance improvements can we expect in cycles?

hello everyone.

Lastly I am playing a bit with different engines trying to catch the good and not so good sides of each.

The fact that cycles is totally integrated with blender, together with its ease of use and quality, make this engine one of my favorites.

Of course features are still missing, but they will come, I am sure.

What a little bit “scares” me is the speed (or the problems in removing noise) that is still weak in some particular situation.
For example, lighting a closed space is quite a pain, since removing the noise completely is almost impossible, especially in occluded areas.

I know that in post we can improve much the situation, but still I think having a clean render would be nice.

On the other hand, open space scenes are really fast already.

Now, having a look at the roadmap I see this paragraph:

Performance

  • Indirect light influence control
  • Image cache for CPU (OpenImageIO)
  • SIMD for BVH/triangle intersection
  • Performance test script
  • Multiresolution shading cache
  • Per lamp option for number of samples (progressive integrator)
  • MIS for lamps (only there for mesh lights now)
  • Light portals
  • Adaptive sampling

I am not a big expert so I don’t perfectly know each of this points. I know for example that importance sampling on mesh lights do not totally solve the noise problem ( and from what I see should already be present right now). I guess that adaptive sampling could be a big improvement, but still, I couldn’t say for sure.

So I would like to ask: how much faster can we expect cycles to be where is still weak in the future? I mean, are we close to the limit or there will be some big step forward?

thanks :slight_smile:

What about importance sampling or is that adaptive sampling.

there are both. Multi importance sampling, but this should be already avaiable for mesh lights, while need to be added for lamps.

Adaptive sampling is also on the list and it’s something different.

Anyway I don’t really know how much benefits in terms of performances we can expect from this things, due to my ignorance on the subject…

I have some nice result with bidirectional sampler, it start to produce correct image, and in very complex light cases it already beat trunk , so i think that scenes that “lighting a closed space is quite a pain, since removing the noise completely is almost impossible, especially in occluded areas” can be improved, and will be close to Yafaray/Lux/other bidirectional based renderers.

Light portals i think is easy, it is just fancy emission light that extand ray in both directions. I going to tweak MLT/MCMC integrator before try to implement portals.

The problem is that take too many time to fix basic bugs in core algirithm, i need to recover a bit, and to clean patch a lot before it will go more official svn branch or other state.

Added info for some of those points on how they affect speed.

Short answer: Until such a time that Brecht decides to pursue bidirectonal sampling for Cycles, interiors that are dimly lit are going to be a tough problem to solve. Aside from that there are many speed improvements that can still be done in Cycles. I personally view Arnold as the ultimate end goal of what Cycles performance can be like, and it’s still by far the fastest production engine I’ve ever had the pleasure of using.

By the way how is Arnold compared to Cycles in dimly lit interiors ? not much faster ? little faster ? much faster ?

Only as much faster as Arnold is at everything else, if that makes sense. You can do some tricks with per-light sampling and constant lights to help clear things up, but Arnold doesn’t currently have any special tricks for small lights or dim, externally-lit interiors. It is why they’re currently researching efficient ways to implement bidirectional sampling. The developers offer some tips for working wth interiors that should carry over fairly well to Cycles, I’ll see if I can adapt it later.