Optix AI Denoiser


(Riley Brown) #1

Just wanted to get this spreading around here as well. AI denoising is making it’s way into Blender! Nothing fancy with this shader, just a simple principled shader with transparency. Caustics are notoriously difficult when it comes to denoising, but here are some promising results! The 100 samples optix render only took 11 seconds.

PS I have permission to share this, but this is all the doing of Grant Wilk (Remington Graphics.)

Render was run on my machine with 2x geforce 1080ti graphics cards. Blender 2.79


How can I optimize this render of a double-glass window?
(Ace Dragon) #2

Can you do a comparison between this and DeepBlender’s denoiser? In addition, we need to know how well it scales up when a much larger amount of samples is applied to the render.

The reason why is that if the decision is made to replace the current denoiser from Lukas, we want to choose the best one.


(Grimm) #3

Can you share the scene? I would like to test on Octane’s AI denoiser.


(kkar) #4

Just curious, are these so called “ai denoisers” cloud based?


#5

All credits for scene go to @Photox

The comparison is pretty unfair, because Optix just uses the combined pass, while the DeepDenoiser handles one pass after another. That’s why I assume it denoises this scene a lot better.


#6

No, they are usually a part of the application and don’t require any cloud.


(Photox) #7

During training a programmer very well might use multiple GPUs from something like AWS, which you might call cloud based, but once trained the models are quite small and can be used, locally, even on a CPU, quite fast.


(Photox) #8

Nice! It’s also possible, and I am speculating, but that the stochastic noise patterns from cycles might train more easily than the more general purpose optix. I remember I was initially trying to convince you to just use combined only, but you’ve certainly shown that the various passes trained separately and then recombined is shockingly effective.

DeepDenoiser 1, Optix 0.


(Ace Dragon) #9

Unfortunately, I’m not sure if Nvidia is even intending on Optix to support passes to help guide the AI to the correct result. It seems that many companies are so into the idea of machine learning/neural networks being these “magic” algorithms that they forget about the idea of combining them with statistical analysis of a scene by way of passes or other data.

That said, if Optix ends up doing results like that in some scenes (either due to not being trained well in that area or the neural network being extremely naive), then I would much prefer your solution, especially if Lukas’ denoising passes can be used.


(kkar) #10

thanks good to know, because my desktop is only connected to the ground


#11

Optix could be fine tuned with Cycles renders. This would very likely lead to better results.


(Photox) #12

The two most important things when coming up with new ML models are imagination and data. Because the passes you are using are cycles specific your models are in a unique position to find cycles only kernels and node activations that might do poorly elsewhere, but make short work of the data inside Blender. Don’t sell yourself short, your imagination and technical follow through has the look of a masterpiece in progress!


(J_the_Ninja) #13

OptiX supports albedo and normal passes as feature guides. I think @DeepBlender was referring to denoising individual light components (ex, diffuse direct vs indirect)


(0o00o0oo) #14

Wait, what does this mean? Is there a development task somewhere that I missed?


(Riley Brown) #15

*plugin

I’m not sure whether or not we’ll get something like this in the Blender main branch. With how well this works I’m sure it will make it’s way in eventually. This plugin by Remington is already yielding fantastic results early on. You’d have to ask him when it will be ready, but so far it’s looking great.


(0o00o0oo) #16

Ah, a third-party add-on. Thanks for the clarification. Still pretty cool, looking forward to seeing what comes out of it.


(3DLuver) #17

There’s been an addon around for a while that allows using optix denoiser with images and animations, https://github.com/troopy28/OptiX-Denoiser-for-Blender

Ive been working on adding Optix directly to Blenders source code, still a good week min before something working: https://devtalk.blender.org/t/ai-denoiser-help/2640

I also would like to say that DeepBlenders AI looks super, but obviously would not at this point be able to run realtime in viewport (he may like to clarify that with me, im not saying it couldnt. just as is doing much more work on multiple passes it probably for final renders)

Optix can run realtime in viewport, which is why im adding it for testing purposes.


#18

The main difference between OptiX and my DeepDenoiser at this point is that one is ready for practical uses and the other isn’t.
At this point, indeed all passes are separately denoised which certainly sums up when it comes to performance. Theoretically, I could add the combined pass as an option, such that denoising within the viewport could be more viable. But I haven’t reached the point yet where it makes sense to run those kinds of experiments. In the worst case, this could have a negative impact on the other passes. In such a case a separate neural network might be better suited. I simply don’t know yet.


(3DLuver) #19

Yeah I thought that might be the case mate, I think your approach longer term when working with animations is superior. I would suggest just to aim for final render denoise, like you say a seperate ai could be used for fast viewport denoise.

Love your work though mate, when my adding optix to blender source is complete I would like to have you on board for testing. Should also give you a simple patch route for adding your own AI to source


(LazyDodo) #20

Have the licensing issues been cleared up yet with optiX? There was a rumor they would ship the binary components with the drivers, so we could safely use it with blender, but i haven’t recently checked if that actually has happened yet.