Advertisement

You're blocking ads, which pay for BlenderNation. Read about other ways to support us.

Crushing render times with distributed denoising

5

Crowd Render presents their plans for faster denoising.

Jamesy writes:

Getting render times down

I think most folk would agree that rendering is not fun. It can take a ridiculous amount of time (or if you have a ever built a render farm, money) and there isn't much you can do during the process but wait.

Making a gross generalisation, there seems to be two ways to reduce render times, brute force it with more hardware or make the process more efficient. Denoising seems to offer an amazing boost in efficiency where the number of samples required to get a good quality image are drastically reduced. Having used the denoiser a few times, I noticed that there was some overhead in the process and so I started wondering, could we distribute the denoising without massive changes to our addon?

Why distribute denoising?

Primarily because I am interested in speed! The faster I can get a frame to render, the happier I am. When I was learning blender, I was using a laptop, so trying out new techniques was a slow and painful exercise. Coming back to our addon, the main reason was to support denoising at all. Going back a few months 2.79 was then a bleeding edge and the results from using it were already making me and Jez (my partner in all this stuff) giddy about how fast cycles could now be.

We set about working on how we'd support denoising. There were really two options, 1. hack the C/C++ code of blender and make our own rendering pipeline (not a pleasant option at first glance) or 2. some other way.

The some other way turned out to be using our existing addon code to render and denoise image tiles on each node. The result was that each node rendered and denoised its tile before sending it to the main (or master) computer where it was recombined into the final image. The details of that adventure are too long for this quick update, but If you'd like to read all the gory detail on how this was done, see the link at the end of this article!

Where do I get this software?!

Wooahhh, hang on there, this is still in development, though we are happy to allow the most enthusiastic of you to test it. We've setup a form on our website where you can register to test. Most likely we'll say "of course!" and send you the pre-release version to test, so long as you're happy for us to contact you for feedback, otherwise, wait a while and it will be released and available to download (you might want to subscribe to our website so you get the notification when that happens ;))

So head to our website and click the link to register for testing and to subscribe (if you want to that is )!

What is crowdrender?

Well, that is us and the addon we're buildling! My self and Jez are two guys from Australia (Jez is from New Zealand actually, important difference) who are making this free addon that lets you easily connect computers together to get them to render stuff. You can build your own renderfarm using computers you own in about 10 minutes (depending on how many computers XD)

If you'd like to know more about it, click the link above, or, if you want to read an article we wrote in our blog that explains the tech behind the way we distributed denoising, read this article.

About the Author

Avatar image for James
James

I'm a software engineer, I've worked on numerous technologies over the past 10 years. I started out working on full motion flight simulators and then worked with embedded systems. I now work on building an add-on to support rendering using multiple computers over internet/local networks. I started using blender in 2009 and have done small projects with it since then, however, crowd render, our network rendering add-on is by far the biggest adventure with Blender to date.

5 Comments

  1. Realised I missed talking about the image, so the image in the post was a test we conducted to see how few samples we could get away with when using the glass shader, a shader that is notorious for requiring a huge number of samples to converge. This then became our test scene for distributed denoising. The image is comprised of two large tiles with a split more or less in the middle.

    Prizes for those who can tell me the location of the split in pixels from the left side of the screen!

  2. I've been using the denoising feature in my renders for work, and it does well in most cases but there are just a handful of materials which it doesn't work well with.

    I'm sure there's probably ways in which the algorithm could be improved (like denoising the light passes separately from the colour passes), but I think the easiest option for controlling the denoising would be a simple tickbox on each material "Denoise [ ]", or a slider with a value from 0 to 100% or 0.0 to 1.0. Just to control for each material if it should be denoised or not.

    There are some materials like carpets that look terrible denoised, but other materials like flat white walls that look great. An option to just control which receive the denoising would be very handy!

    It isn't even that hard to implement, I've already done it with a node setup, it would just involve another pass output indicating the amount of denoising to receive, from 0 to 1, and then the denoiser would have to use that output to control it's denoising strength.

    • Hi Grady,
      All great points! Have you thought about putting this to the devs at the blender institute? I'd love to implement this but denoising is a tool that crowdrender uses, we don't develop it, we just figured out how to distributed its load across multiple computers!

      Cheers!

      James

      • Hey there James,

        I'd love to put it to them, maybe even make a sample .blend file showing the basic concept of what I'm talking about. But I'm not sure who I would send it to or how? If you can point me in the right direction, I'll follow up the relevant people and see what they think. Thanks!

Leave A Reply

To add a profile picture to your message, register your email address with Gravatar.com. To protect your email address, create an account on BlenderNation and log in when posting a message.

Advertisement

×