利用者:Lukasstockner97/GSoC 2016/Weekly Reports/Week 6
Hi!
Once again, sorry for the very delayed report - I was really busy with real-life stuff (mostly University) last week. Of course, I haven't been completely idle. Mainly, I've been working on tracking down bugs and finishing the denoise-after-render functionality.
It almost works by now, there is just one problem left with writing back the denoised result. Therefore, I haven't committed yet, but will most likely do so tomorrow. That's also the main reason for the delay - I wanted to get it working before the report, but by now the delay is getting ridiculous, so here we go...
To be precise, I've done:
- Adding functionality to allocate and fill a RenderBuffer based on a finished RenderResult.
- Implementing a denoising mode in the BlenderSession and Session classes that bypasses the unneeded parts like Scene syncing.
- Changing some of the Render API code since Cycles can't write to the RenderResult if engine->re isn't filled.
- Changing how tiles are written to the RenderLayer to allow multiple tiles sharing a single buffer (since in a Denoising session, the RenderResult is read as one large RenderBuffer).
- Started adding a basic command-line denoising mode to Cycles Standalone - the goal isn't (yet) to actually use it in a workflow, but to debug faster because I can render once and then just directly start the denoiser in the debugger instead of waiting for the debug build to render.
- Added additional debugging output to the Denoiser in form of PFM files dumped while rendering (of course, that's only temporary).
- Fixed the bordered rendering bug.
- Hopefully fixed MSVC compilation.
- Probably broken GPU rendering again, I'll check before committing.
- Rebased to the current master (there were some merge conflicts due to the Node refactor, but nothing dramatic).
In addition, I've nearly finished the next iteration of the Metallic BSDF patch (D2003) - now with correct Conductive Fresnel both for the regular distributions and Multiscattering GGX!
As I said, nothing of that is committed yet - mainly because I know that some people actively follow the development and try out the latest versions, so I don't want to leave the branch in a broken state. I'll commit it as soon as it works!
Lukas