FAST and NOISE FREE CYCLES renders are here!

Hi everyone!
I was doing some tests with Cycles render. I took one of our studio production scenes that we rendered with 3delight renderman and decided to render it in Cycles. The results were nice out of the box, but always noisy and terribly slow.
As I use Renderman on daily basis at work, I know that the Renderman is so fast because it allows to cheat lots of things, obviously renderman’s lighting is not physically accurate but who cares! As long as the image is done in time and looks beautiful it doesn’t matter if it was done with path tracing or REYES pipeline. So I decided to look for some ways to cheat lighting in Cycles… Good news! I found out that it is possible to cheat lighting in Cycles, just it needs more refinement and some development in this area, hopefully some Cycles developers will get interested in this post and implement some of the features.
So here are some comparisons:
http://s28.postimg.org/j0rj04gnd/image.jpg
This is GI render with one bounce and 2 lights: one light comes from the window and another is placed in the room to lighten noisy areas. I did not subdivide the geometry…honestly I don’t know how to do it correctly in Blender.

http://s3.postimg.org/cvi7aeu27/direct_light_occlusion.jpg
And this image is made with a renderman workflow in mind.
There is one window light without any GI or world background texture. It rendered really fast and as you see it is completely noise free! Obviously this image is not physically accurate and not 100% realistic but it works!
Here I used one light that gave me nice soft shadows from the window and than I introduced AO that acted as a ambiance of the room.

For decades this fake method was abused by renderman artists for cartoons and top blockbuster movies. And it is available in Cycles too…BUT you can get away with even more colorful and photoreal images if the Cycles AO feature implemented IBL. Basically AO is a “local” lighting effect that is just a pure solid white color light that is applied on the exposed geometry, this way you get flat lit scene with some AO shadowing…and an image looks boring! But if the AO sampled the HDRI , the lighting would have all interesting color variations based on the object’s normal direction. That would allow more realistic,fast, noise free and colorful renders.
I hope the AO feature will be extended with IBL functionality or at least there would be a way to change the AO light color to the user specified colors.
Cheers guys!
Tell me what you think.

Yep, just because you use a raytracer doesn’t mean you have to set up the lighting realistically or use huge path depth!

Especially with cycles you can makes lights invisible to camera or reflections soo go crazy!

Sure, cycles is slow, because of all the physically correct stuff, but there are plenty ways to fake things and get some decent speeds…
Here’s some tips:
By default, cycles is tuned up for very good quality (all physically correct and stuff), but slow speed (Unlike BI, which is the other way around). Tune down the cycles settings. Don’t use “real” DOF, use the compositor. Don’t use real fog, use the compositor. Don’t use many bounces if they barely make a difference. Your goal is to keep your settings as low as possible, but still keep the render result good. Compromise. You can render some objects with far less samples in other layers, and then composite them together.
Use bilateral blur in the compositor to completely eliminate noise. It’s amazing.
If there are some static objects that have no changing lights on them, you can easily bake the colour into a texture and use shadeless material. This will render that object VERY quickly. To bad baking in Cycles is not finished yet :slight_smile:

Here’s a pic without compositing (zoom in to see noise):



Here’s with compositing:


This is one frame from an animation I am working on. Each frame takes me only 1 minute to render on GPU.

Nice renders Freemind. You mentioned Bilateral Blur. Can you point me to the tutorial on using “Bilateral Blur" in Cycles. You say this is amazing so I want to try this to see how much noise it eliminates. What other steps are you taking to eliminate the noise besides bilateral blur?

I sure hope Cycles is improved as far as the fireflies or whatever goes because I’ve all but given up on it due to the noise. I mean shouldn’t one be able to just render out their scene without having to bake the colour, deselect this, select that, turn off “shadows” decrease bounces, avoid using real DOF, setting up nodes in the compositor and on and on and on… It’s very annoying having to jump through hops just to get a half decent render.

I don’t really like Cycles anymore because it is just too hard to get a decent render out of the box.

In my experience, the noise is restricted nearly completely on a few of the passes (usually the Indirect ones): add some judicious bilateral blur to the the noisy channels and recompose, saving hundreds of steps.

Here is one method for noise reduction from CGCookie with the help of B-wide node pack:

Cycles can be very slow in interior scenes, window light portals can help tremendously…

Here is a guy who claims to have invented a method for lighting interior renders with HDRI with insane speeds:

Pretty interesting, but it seems he wouldn’t share it yet.

Forgot to mention, The renders above are 50 samples. 1920x1080. The render with compositing takes about a minute to render on my GPU.
I tried to keep everything as minimalistic as possible so that I can make an animation that I can actually render on my computer in my lifetime. I’d say, 2 minutes a frame is acceptable for animation. For stills, I can wait hours, I am in no rush.

I followed this tutorial for the bilateral blur:

Bilateral blur is a filter node in the compositor that lets you blur the image, but still preserve edges.
Cycles allows you to render separate passes, the colour pass is not noisy thankfully, so you de-noise other passes and add the colour on them, so textures don’t get blurred, which is cool.

Of course, bilateral blur is not perfect, there’s still a difference between a blurred noisy image and an image that was actually rendered till it’s not noisy any more. Also, there’s something odd about the edges, but I can’t put my finger on it…
But really, if you render your image enough till it looks kinda clean, bilateral blur is enough to finish the job without being noticed. Basically, why render another 1000 samples, if you can blur it out and no one will notice? :slight_smile: This will get rid of fireflies too.

You should really buy a CUDA compatible card if you really want to feel happy with Cycles. CPU rendering is quite a pain on my i5 quadcore processor… Currently rendering 5 minutes a frame. So basically, rendering my 300 frame animation will take a bloody while. I am rendering the scene with smoke. Can’t wait to see volumetrics on GPU!

BI is still faster on the same things, unfortunately. That is, even if you strap down Cycles to be as completely “fake” as BI, I believe BI would still win in speed.
I don’t believe Cycles will ever be as fast on CPU as BI, all those extra physically correct features really put a lot of weight on the renderer, even if they are not used, i think. But I don’t really know how these things work, so I might be wrong.

I mean shouldn’t one be able to just render out their scene without having to bake the colour, deselect this, select that, turn off “shadows” decrease bounces, avoid using real DOF, setting up nodes in the compositor and on and on and on…

Well, it’s not like there is any “real” DOF in BI…
BI is kinda like Cycles, just that it starts with nothing instead of everything. Of course, there aren’t enough things to turn on to get to Cycles level.
Would you rather have Cycles be all strapped down by default? I wouldn’t. Because sometimes I just want to render a suzzane head and I want it to look pretty without me fiddling around in the settings.
If you don’t - Strap your Cycles down and save it as your default scene. Basically, you will have something like BI, just that you will have more cool things to turn on…

Here is one method for noise reduction from CGCookie with the help of B-wide node pack:

http://cgcookie.com/blender/2014/02/…on-compositor/

Yeah. Bilateral blur… :slight_smile:

if the Cycles AO feature implemented IBL. Basically AO is a “local” lighting effect that is just a pure solid white color light that is applied on the exposed geometry, this way you get flat lit scene with some AO shadowing…and an image looks boring! But if the AO sampled the HDRI , the lighting would have all interesting color variations based on the object’s normal direction

Dunno if you know this, but it’s possible to apply matcap style textures to materials in Cycles. So if you were to figure out how to project an HDRI onto a material surface using a modified matcap method and then multiply that in some way with a baked AO… Would that do it? Maybe, maybe not, but just a thought there.

Anyhow it’d be more of a material settings trick than a typical lighting/render settings approach. But if it somehow works and gets results fast, then why not?

Thanks Freemind and others. So can I just set up the Bilateral Blur nodes once and then just “copy” the nodes to each blender file to save time?

@MonteNero

Nice example, would be good if this is noted on blender.stackexchange too.

I rmember that there as someee Topic with AO as an emition light someone remember this?

unbelievable. this is so strange that I find it amusing, thanks for sharing :slight_smile:

I beg to differ here.

If you compare BI clay rendering with Cycles clay rendering, BI might be faster. The moment you turn on raytracing in BI and use a blurred material, or ray AO it’s render speed tanks drastically making it painfully slow.

Blender is only fast when doing scan line rendering.

Yafaray actually is much much faster in ray AO etc than BI.

Do we have a cycles VS BI benchmark somewhere?
If not, I think it would be a good idea.

B.t.w., I think that it would be a great idea to add a median filter to Blender, since Cycles noise does look like salt and pepper noise and median filter is the weapon of choice to kill it.

I’m wondering… Have you seen a Video de-noised by Median-Filter? (Or Median-filter De-noised Images put to a Video)

I somewhat doubt it would look ok, but that’s why i ask :wink:

Your renderman version looks allot like a blender internal render. You might want to see if you can speed up your render times even further by using BI, if you are looking for renders with less dynamic lighting.

Each of the following images was rendered by Cycles using 2 AA samples. See the upper left corner for render times.

Example #1: direct lighting, no bounces.


Example #2: global illumination, 1 bounce.


Example #3: direct lighting, no bounces, SoftLight OSL shader. (This shader is also available as a patch for BI.)


Test scene: an emitting Suzanne on a matte white plane, 10 integration steps. The offender is the Diffuse Direct Pass.

Original:


The result of a 11x11 median filtering done with GIMP:


For comparison, the unprocessed result with 100 (ten times more!) integration steps:


I don’t think that a median filter gives better results than bilateral blur.

This is 10 samples + bilateral blur with space sigma = 20:


However, the problem with all of these noise removers is that they totally destroy any small scale surface detail that is supposed to be there, e.g. the normal map in my previous post.

Maybe we should just learn to accept and embrace the noise, just like people accept film grain in B/W photography or the “warm” sound of vinyl recordings. :evilgrin: