This part adds support for feature passes - both on the host and in the rendering kernel.
For that, the UI components are required, but aren't actually doing anything noticeable yet.
Depends on D2590.
Differential D2591
Cycles Denoising: Part 2: Generating the feature passes in the kernel Authored by Lukas Stockner (lukasstockner97) on Mar 31 2017, 2:23 AM.
Details This part adds support for feature passes - both on the host and in the rendering kernel. Depends on D2590.
Diff Detail
Event Timeline
Comment Actions Addressed most of the review. The option to not denoise some components was requested several times in the initial versions of the patch, so I added it in the GSoC version. I'm not exactly sure for which scenes you'd use it, though. As for the weight computation in branched path tracing: The problem is that any source of noise has to be avoided in the features, which is why I'm not exactly happy about using throughput for it. Even if the current solution isn't 100% correct, that's actually not even required - the least-squares fit is general enough that it can handle unnormalized weights etc. just fine. Comment Actions Looks good to me then. I guess control over the components is useful as a last resort in case denoising fails for some reason, and being able to boost e.g. branched path tracing samples for some component while disabling denoising is a workaround. Hopefully it will not be needed eventually, but seems ok currently given how none of this denoising stuff is an exact science and some user control is important. For the feature weights, I don't have a good sense for what works best in the final denoising algorithm. Let's keep it as is then, it can always be tweaked if needed. Comment Actions Moved the denoising properties into the Cycles addon and added an option to This makes it a lot easier to debug problems and check why some scenes don't Comment Actions Looks good to me. Totally agreed these extra passes are great for developers and animation or post process denoising in the future. Comment Actions Python changes are not PEP8 compliant though. descpription="Something something ... something "
"something something something",as that is allowed with strings that are inside the brackets (parameters). No need for backslashes. if srl.use_pass_z:
engine.register_pass(
scene, srl, "Depth",
1, "Z", 'VALUE'
)
if srl.use_pass_mist:
engine.register_pass(
scene, srl, "Mist",
1, "Z", 'VALUE'
)
if srl.use_pass_normal:
engine.register_pass(
scene, srl, "Normal",
3, "XYZ", 'VECTOR'
)That is valid PEP8. Depending on the preference the lines can be split differently. Comment Actions We're already breaking pep8 in these Python files many times then, which I guess would be good to fix but can also be done after for the whole file. Comment Actions I agree, but it's something to consider for future commits, as the files will drift away again with new features/changes added. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||