利用者:Lukasstockner97/GSoC 2016/Weekly Reports/Week 2
Hi!
Sorry for the delay, one of my hard drives died unexpectedly - but at least no code was lost!
In this week I implemented the feature passes needed for denoising:
- The first problem was that all of the 32 bits in the passtype flag were full. For now, I've agreed with Sergey to simply extend it to 64 bit, but in the long run the render pass system could really use a redesign - anyways, that's outside of the scope of this GSoC project.
- Extending everything to 64bit wasn't really possible due to limitations in the RNA system, but also not necessary - adding it to the RenderResult parts is enough, along with an interface for renderers to add passes to the result on their own.
- Using these new bits, I added the 9 feature passes: Normals, Albedo, Depth and Color, the variance of the four and an additional "Do not denoise" pass for selective denoising.
- Of course, these also need some content, so I added support for generating them in Cycles. That required a bit of refactoring in the kernel code, but nothing should be different from the user perspective.
- For now, these passes are still displayed in the Image editor for development purposes, later they will be hidden in the UI.
Next week I'll start to implement the actual denoising kernel in Cycles - with a bit of luck, it might already be working at the end of the week (the schedule in my proposal allocated two weeks for it).
Also, I spent some time on Adaptive Polynomial Rendering, the new denoising paper by Disney Research for this year's Siggraph that went online on Wednesday. It's essentially a direct improvement on WLR (aka LWR, the algorithm that I'll implement) and "Adaptive Rendering with linear predictions". It's explained quite well and seems to be compatible with the pixel-based model that I'll implement, so it should be possible to add it in the future or even if I have time at the end of this GSoC project. Especially their outlier removal process is interesting, it could also be added to LWR and should already help a lot for some scenes.
So, that it for my (delayed) weekly report. As always, the code can be found in the soc-2016-cycles_denoising branch - it's not really useful yet, but that'll change next week!
Lukas