Page 4 of 6

Re: Transitioning from VRay to LuxCoreRender

Posted: Fri Jun 28, 2019 6:27 am
by epilectrolytics
happyboy wrote: Fri Jun 28, 2019 6:15 am BTW: While I know color bleeding is physically correct, I often think the bleeding looks MORE than it should. Are there other ways to reduce color bleeding while still being physically correct?
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.

Re: Transitioning from VRay to LuxCoreRender

Posted: Fri Jun 28, 2019 6:44 am
by B.Y.O.B.
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?
OIDN is already a separate imagepipeline plugin.
You can use the output_switcher plugin to choose the input AOV of an imagepipeline, then add the OIDN plugin, and then any additional plugins you might want.
Like this:

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.
You can create any number of imagepipelines with any AOV as input.
However, I do not know how good OIDN works with AOVs other than the combined image. Since it's a trained neural network, it's hard to tell.

Re: Transitioning from VRay to LuxCoreRender

Posted: Sat Jun 29, 2019 6:25 am
by happyboy
B.Y.O.B. wrote: Fri Jun 28, 2019 6:44 am You can create any number of imagepipelines with any AOV as input.
However, I do not know how good OIDN works with AOVs other than the combined image. Since it's a trained neural network, it's hard to tell.
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.

Re: Transitioning from VRay to LuxCoreRender

Posted: Sat Jun 29, 2019 6:26 am
by happyboy
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.
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!

Re: Transitioning from VRay to LuxCoreRender

Posted: Sat Jun 29, 2019 9:54 am
by B.Y.O.B.
happyboy wrote: Sat Jun 29, 2019 6:25 am 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.
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:

Re: Transitioning from VRay to LuxCoreRender

Posted: Sat Jun 29, 2019 3:25 pm
by happyboy
B.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:
ah yes.. simply adding them together :)

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 :)

And you inspired me of a possible solution to a problem in my original post: how to mimic VRay's "affect_reflections=false" feature. Just add all such lights into a separate radiance group and render all separate AOVs for both radiance groups (default and "no-reflection" one), DON'T add up "no-reflection" radiance group's indirect light AOVs. That's all.

It looks good in theory, but I haven't (yet) found an easy way to get two sets of AOVs for both radiance groups... Rendering twice should work (disabling one group in each render), but of course I want to do it with a single render.

Re: Transitioning from VRay to LuxCoreRender

Posted: Sat Jun 29, 2019 3:45 pm
by B.Y.O.B.
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
It's not possible in the LuxCore imagepipeline, but you can use numpy or an external commandline image-editing program, e.g. imagemagick.

Re: Transitioning from VRay to LuxCoreRender

Posted: Sun Jun 30, 2019 12:56 am
by happyboy
B.Y.O.B. wrote: Sat Jun 29, 2019 3:45 pm It's not possible in the LuxCore imagepipeline, but you can use numpy or an external commandline image-editing program, e.g. imagemagick.
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?

Re: Transitioning from VRay to LuxCoreRender

Posted: Sun Jun 30, 2019 8:33 am
by B.Y.O.B.
happyboy wrote: Sun Jun 30, 2019 12:56 am And what about the "radiance group" part? Is it possible to get AOVs for multiple radiance groups in a single render?
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:
https://wiki.luxcorerender.org/LuxCore_ ... ance_Group

Re: Transitioning from VRay to LuxCoreRender

Posted: Sun Jun 30, 2019 9:00 am
by Dade
Yes, radiance group scales are a image pipeline setting so you can different values for each image pipeline. You can get different images (i.e. day Vs. night, etc.) out of a single rendering.

Note: PhotonGI doesn't support radiance groups at the moment.