You should look into filmic tonemapping.
I'm no expert on this, but I read that filmic reduces saturation in the bright parts of an image which also means reduced color bleeding.
Filmic is available through Blender.
You should look into filmic tonemapping.
OIDN is already a separate imagepipeline plugin.happyboy wrote: ↑Fri Jun 28, 2019 6:15 am I can currently think of two approaches:
1. write an ImagePipeline plugin, manipulating AOVs before OIDN
2. LuxCore only renders to AOVs, then I write a separate program to process AOV, then call OIDN manually.
Are there any other approaches? Which one is preferred?
Code: Select all
# Pipeline for indirect diffuse light
film.imagepipelines.0.0.type = "OUTPUT_SWITCHER"
film.imagepipelines.0.0.channel = "INDIRECT_DIFFUSE"
film.imagepipelines.0.1.type = "INTEL_OIDN"
film.imagepipelines.0.2.type = "TONEMAP_LINEAR"
film.imagepipelines.0.2.scale = 1.5
# Pipeline for indirect glossy light
film.imagepipelines.1.0.type = "OUTPUT_SWITCHER"
film.imagepipelines.1.0.channel = "INDIRECT_GLOSSY"
film.imagepipelines.1.1.type = "INTEL_OIDN"
film.imagepipelines.1.2.type = "TONEMAP_LINEAR"
film.imagepipelines.1.2.scale = 1.5
# etc.
Thanks! But are imagepipelines "linear"? I mean, is it possible to "merge" the processed AOVs back to a new "beauty" channel and let OIDN operate on it? I'm also worried about its effectiveness with other AOVs.
yeah... I'm aware of filmic tonemapping. We use it in real-time renderings... We'll try and see how well it does for offline renderings Thanks!epilectrolytics wrote: ↑Fri Jun 28, 2019 6:27 am You should look into filmic tonemapping.
I'm no expert on this, but I read that filmic reduces saturation in the bright parts of an image which also means reduced color bleeding.
Filmic is available through Blender.
If you use a linear tonemapper, the results are linear and you can just add them together.
ah yes.. simply adding them togetherB.Y.O.B. wrote: ↑Sat Jun 29, 2019 9:54 am If you use a linear tonemapper, the results are linear and you can just add them together.
I think your idea is even better than mine: desaturate the noisy indirect light AOV a bit, then add the noisy AOVs together, then denoise - this might work much better than denoising the individual AOVs and then adding them.
You can combine them like in this example:
It's not possible in the LuxCore imagepipeline, but you can use numpy or an external commandline image-editing program, e.g. imagemagick.happyboy wrote: ↑Sat Jun 29, 2019 3:25 pm But it seems that you're using Blender's nodes rather than luxcore's image pipeline (my current computer doesn't have Blender installed)?
Can I do this easily only with luxcoreconsole (or pyluxcore's console)? It's ok if it can't, because writing a separate program to do simple image processing is no big deal, just asking
Ok! Thanks. And what about the "radiance group" part? Is it possible to get AOVs for multiple radiance groups in a single render? Or maybe it's not possible with console but can be done by directly calling SDK?
Hm, not sure. You can try to disable some groups in one of the imagepipelines containing output_switcher and see if it changes the result: