What is scene.volumes.<volume name>.absorption exactly?
The ratio of power loss of a ray traveling 1 unit through that volume? So glass with a thickness of 1 and absorption of 1 is opaque?
scene.volumes.<volume name>.absorption
Forum rules
Please upload a testscene that allows developers to reproduce the problem, and attach some images.
Please upload a testscene that allows developers to reproduce the problem, and attach some images.
Re: scene.volumes.<volume name>.absorption
Absorption isn't a linear phenomenon, it is exponential (aka Beer’s law): http://www.pbr-book.org/3ed-2018/Volume ... ml#eq:beer (http://www.pbr-book.org/3ed-2018/Light_ ... m-sampling)
So it is something like:
Transmittance = Exp(-<absorption> * <distance>)
For a clear volume, you have also to factor scattering for other types (instead of "<absorption>", it is "<absorption> + <scattering>").
Re: scene.volumes.<volume name>.absorption
You can plug a colordepth texture into the volume's absorption slot for easier usage: https://github.com/LuxCoreRender/LuxCor ... th.cpp#L45
To explain the parameters: kt is the color of white light after travelling the distance d.
To explain the parameters: kt is the color of white light after travelling the distance d.
Re: scene.volumes.<volume name>.absorption
Dade, thanks for the reply.
power_out = power_in * e^(-absorption * distance)
So with an absorption of 0.7 a glass plate with a thickness of 1 reduces the radiation from normal angle rays by roughly 50%.
This ignores kt and kr. kt=1 and kr=0 brings full transmission into the volume? At least for normal angle rays?
Is there any documentation about the underlying functions used?
I'm aware that this must be an exponential function. But is it exactly that function with a base of e?
power_out = power_in * e^(-absorption * distance)
So with an absorption of 0.7 a glass plate with a thickness of 1 reduces the radiation from normal angle rays by roughly 50%.
This ignores kt and kr. kt=1 and kr=0 brings full transmission into the volume? At least for normal angle rays?
Is there any documentation about the underlying functions used?
Re: scene.volumes.<volume name>.absorption
I saw this in blender. But this parameter do not exist in the python API, right?B.Y.O.B. wrote: ↑Tue Feb 05, 2019 11:13 am You can plug a colordepth texture into the volume's absorption slot for easier usage: https://github.com/LuxCoreRender/LuxCor ... th.cpp#L45
To explain the parameters: kt is the color of white light after travelling the distance d.
Also this not composition is not available via python, is it?
Re: scene.volumes.<volume name>.absorption
The whole Blender addon is written in Python. Only the mesh and hair export is done in C++, but only because that's faster - you could do it in Python as well. The colordepth texture is available from Python, like any other texture.
Here's the BlendLuxCore code: https://github.com/LuxCoreRender/BlendL ... __.py#L211
You will have to search for the helper functions "utils.create_props" and "utils.absorption_at_depth_scaled" to see the whole process, but I hope it helps.
Re: scene.volumes.<volume name>.absorption
It is exactly the same physic used by PBRT (the links I posted). It is probably the best documentation you can find.mick wrote: ↑Tue Feb 05, 2019 6:58 pm Dade, thanks for the reply.
I'm aware that this must be an exponential function. But is it exactly that function with a base of e?
power_out = power_in * e^(-absorption * distance)
So with an absorption of 0.7 a glass plate with a thickness of 1 reduces the radiation from normal angle rays by roughly 50%.
This ignores kt and kr. kt=1 and kr=0 brings full transmission into the volume? At least for normal angle rays?
Is there any documentation about the underlying functions used?
The code for clear volumes is here: https://github.com/LuxCoreRender/LuxCor ... ar.cpp#L70
If you check the Exp() implementation (https://github.com/LuxCoreRender/LuxCor ... lor.h#L178), it is really e^x.
Re: scene.volumes.<volume name>.absorption
Thanks, Dade. With that references I should be able find out what I need.
Would please also take a look at my other problem: viewtopic.php?f=4&t=903
Thx
Would please also take a look at my other problem: viewtopic.php?f=4&t=903
Thx
Re: scene.volumes.<volume name>.absorption
Sorry, I've to come back to this.
does not work for a distance < 1. I would have to specify an absorption > 1, which does neither work in Blender nor LuxCore SDL.
Is there a way to specify an absorption_depth in LuxCore SDL?
Code: Select all
Transmittance = Exp(-<absorption> * <distance>)
Is there a way to specify an absorption_depth in LuxCore SDL?
Re: scene.volumes.<volume name>.absorption
scene.volumes.<volume name>.absorption parameter is clamped between [0, +Infinity] so a value > 1 is perfectly legal and usable in LuxCore SDL.mick wrote: ↑Sun Feb 10, 2019 11:24 pm Sorry, I've to come back to this.
does not work for a distance < 1. I would have to specify an absorption > 1, which does neither work in Blender nor LuxCore SDL.Code: Select all
Transmittance = Exp(-<absorption> * <distance>)