POV-Ray : Newsgroups : povray.general : Reflectance of 3D canopy Server Time
24 Nov 2024 23:48:09 EST (-0500)
  Reflectance of 3D canopy (Message 1 to 10 of 10)  
From: muyu
Subject: Reflectance of 3D canopy
Date: 13 Mar 2017 07:00:00
Message: <web.58c67b31bc9274bfcf0bfa9c0@news.povray.org>
Hi,

I would like to simulate the radiative transfer in 3D crop canopy using Pov-ray.
We can have the optical properties of each surface (transmitance and
reflectance/diffuse). In order to simulate the multi-scattering, I would like to
use radiosity.

1) I can set the transmitance by rgbt(0,1,0,transmitance). Transmitance is the
same for all the three color chanels? This is not realistic for most cases.


2) diffuse can be set by finish{diffuse df}. But I do not know how this diffuse
impact the surface color? rgb(0,1,0)*diffuse?

Thx in advance.



Shouyang


Post a reply to this message

From: clipka
Subject: Re: Reflectance of 3D canopy
Date: 13 Mar 2017 12:25:04
Message: <58c6c7e0$1@news.povray.org>
Am 13.03.2017 um 11:57 schrieb muyu:
> Hi,
> 
> I would like to simulate the radiative transfer in 3D crop canopy using Pov-ray.
> We can have the optical properties of each surface (transmitance and
> reflectance/diffuse). In order to simulate the multi-scattering, I would like to
> use radiosity.
> 
> 1) I can set the transmitance by rgbt(0,1,0,transmitance). Transmitance is the
> same for all the three color chanels? This is not realistic for most cases.

Alternatively (or in addition) you can use filtering transparency, by
specifying the pigment as `rgbf <R,G,B,Filter>` (or `rgbft
<R,G,B,Filter,Trans>`). This will give you an effective transmissive
component of `<R,G,B>*Filter` (or `<R,G,B>*Filter+<1,1,1>*Trans`).

Be aware that if you use solid shapes the effect will be applied twice
(once at each interface).

Also note that this type of transmittance does not account for any
scattering. For that you would have to use a different mechanism: Media
(requires solid shapes), subsurface light transport (requires solid
shapes), or backside diffuse illumination (requires non-solid shapes).
For the latter you would specify `finish{diffuse DFront,DBack}`, giving
you a diffuse reflectivity of `Pigment*DFront` and a diffuse
transmittance of `Pigment*DBack`.

> 2) diffuse can be set by finish{diffuse df}. But I do not know how this diffuse
> impact the surface color? rgb(0,1,0)*diffuse?

Yes, the `diffuse` term is multiplied by the nominal pigment colour.


Post a reply to this message

From: muyu
Subject: Re: Reflectance of 3D canopy
Date: 13 Mar 2017 17:30:00
Message: <web.58c70e482e25eba1734b43580@news.povray.org>
clipka <ano### [at] anonymousorg> wrote:
> Am 13.03.2017 um 11:57 schrieb muyu:
> > Hi,
> >
> > I would like to simulate the radiative transfer in 3D crop canopy using Pov-ray.
> > We can have the optical properties of each surface (transmitance and
> > reflectance/diffuse). In order to simulate the multi-scattering, I would like to
> > use radiosity.
> >
> > 1) I can set the transmitance by rgbt(0,1,0,transmitance). Transmitance is the
> > same for all the three color chanels? This is not realistic for most cases.
>
> Alternatively (or in addition) you can use filtering transparency, by
> specifying the pigment as `rgbf <R,G,B,Filter>` (or `rgbft
> <R,G,B,Filter,Trans>`). This will give you an effective transmissive
> component of `<R,G,B>*Filter` (or `<R,G,B>*Filter+<1,1,1>*Trans`).
>
> Be aware that if you use solid shapes the effect will be applied twice
> (once at each interface).
>
> Also note that this type of transmittance does not account for any
> scattering. For that you would have to use a different mechanism: Media
> (requires solid shapes), subsurface light transport (requires solid
> shapes), or backside diffuse illumination (requires non-solid shapes).
> For the latter you would specify `finish{diffuse DFront,DBack}`, giving
> you a diffuse reflectivity of `Pigment*DFront` and a diffuse
> transmittance of `Pigment*DBack`.
>
> > 2) diffuse can be set by finish{diffuse df}. But I do not know how this diffuse
> > impact the surface color? rgb(0,1,0)*diffuse?
>
> Yes, the `diffuse` term is multiplied by the nominal pigment colour.

Thanks a lot for your nice answer.

I checked the follwoing code to understand the impact of diffuse fraction. As I
understood, the output image color should be proportional to the diffuse
fraction. But the result is not...especially as the diffuse is very low. What's
the problem? Thanks again.


Antialias=on
Antialias_Threshold=0.0
Antialias_Depth=2

Input_File_Name="canopy_rami_cal.pov"

Initial_Frame=1
Final_Frame=11
Initial_Clock = 0
Final_Clock = 1

width = 1000
height = 1000


Cyclic_Animation=on
Pause_when_Done=off

//-----------------------------------------------------------------------------
#include "colors.inc"
light_source{<0,0,100> color rgb<1,1,1> parallel}

#version 3.7; // 3.6;
global_settings {
   assumed_gamma 2.2
   ambient_light 0

   radiosity {
      count 1500
      gray_threshold 1.0
      error_bound 0.01
      brightness 1
   }
}

// camera ------------------------------------------------------------
camera{ perspective
        angle 5
        right     <1,0,0>
        up        <0,1,0>
        look_at   <0,0,0>
        location  < 0, 0, 50>
        }

// ground ------------------------------------------------------------
plane { <0,0,1>, 0
        texture{ pigment{color rgbt<0.0,1,0.0>}
                 finish {ambient 0.0 diffuse clock fresnel conserve_energy}
               } // end of textures
      } // end of plane


Post a reply to this message

From: clipka
Subject: Re: Reflectance of 3D canopy
Date: 13 Mar 2017 18:40:30
Message: <58c71fde@news.povray.org>
Am 13.03.2017 um 22:25 schrieb muyu:
> clipka <ano### [at] anonymousorg> wrote:
>> Am 13.03.2017 um 11:57 schrieb muyu:
>>> Hi,
>>>
>>> I would like to simulate the radiative transfer in 3D crop canopy using Pov-ray.
                   ^^^^^^^^^^
...
> //-----------------------------------------------------------------------------
> #include "colors.inc"
> light_source{<0,0,100> color rgb<1,1,1> parallel}
> 
> #version 3.7; // 3.6;
> global_settings {
>    assumed_gamma 2.2
                  ^^^^^

There are two things in this world that absolutely positively do NOT go
together: The word "simulate" and the POV-Ray setting `assumed_gamma 2.2`.

If physical accuracy is of /any/ relevance to what you are trying to do,
then `assumed_gamma 1.0` is a MUST.


Also, beware that most output file formats by default do _not_ represent
brightness in a linear fashion. For instance, a colour value of
(R,G,B)=(51,51,51) in an output image typically does _not_ represent a
luminance of 20% (51/255), but rather a luminance somewhere around a
meager 3% (approximately (51/255)^2.2).

If you want raw output image data to represent luminance in a linear
fashion, use `File_Gamma=1.0` in the .ini file.


Post a reply to this message

From: muyu
Subject: Re: Reflectance of 3D canopy
Date: 15 Mar 2017 11:45:00
Message: <web.58c960592e25eba1cf0bfa9c0@news.povray.org>
Thanks a lot a lot...very clear and very helpful

Now I am able to simulate the reflectance of 3D canopy using Pov-ray. However it
seems a little bit underestimate compared with Monte Carlo approach (the
reference dataset). I am wondering if physically radiosity based apprroach in
Pov-ray ignore some processes. If not, how can I improve the accuracy of this
estimation? Thanks in advance again.


Post a reply to this message

From: clipka
Subject: Re: Reflectance of 3D canopy
Date: 16 Mar 2017 05:01:06
Message: <58ca5452@news.povray.org>
Am 15.03.2017 um 16:40 schrieb muyu:

> Now I am able to simulate the reflectance of 3D canopy using Pov-ray. However it
> seems a little bit underestimate compared with Monte Carlo approach (the
> reference dataset). I am wondering if physically radiosity based apprroach in
> Pov-ray ignore some processes. If not, how can I improve the accuracy of this
> estimation? Thanks in advance again.

and (in povray.beta-test):

> Thanks. I tested the back side illumination with radiosity. I am rendering a
> scene with very dense leaves. The objective is to get the physically accurate
> illuminace of each pixel. I set the assumed_gamma and file_gamma as 1.0. Then
> this the pixel color is supposed proportional to the illuminace? However, it
> seems the light does not propagate deep enough into the canopy (with radiosity
> and side diffused light). When compared with the reference results achieved with
> Monte Carlo method, the illuminace or reflectance is underestimated. I am
> wondering this is because Pov-ray ignore some physical processes or I did not
> set the right functions. Thanks again.

You may need to significantly increase the radiosity `recursion_limit`
setting.


Post a reply to this message

From: muyu
Subject: Re: Reflectance of 3D canopy
Date: 16 Mar 2017 11:10:00
Message: <web.58caaa122e25eba1cf0bfa9c0@news.povray.org>
clipka <ano### [at] anonymousorg> wrote:
> Am 15.03.2017 um 16:40 schrieb muyu:
>
> > Now I am able to simulate the reflectance of 3D canopy using Pov-ray. However it
> > seems a little bit underestimate compared with Monte Carlo approach (the
> > reference dataset). I am wondering if physically radiosity based apprroach in
> > Pov-ray ignore some processes. If not, how can I improve the accuracy of this
> > estimation? Thanks in advance again.
>
> and (in povray.beta-test):
>
> > Thanks. I tested the back side illumination with radiosity. I am rendering a
> > scene with very dense leaves. The objective is to get the physically accurate
> > illuminace of each pixel. I set the assumed_gamma and file_gamma as 1.0. Then
> > this the pixel color is supposed proportional to the illuminace? However, it
> > seems the light does not propagate deep enough into the canopy (with radiosity
> > and side diffused light). When compared with the reference results achieved with
> > Monte Carlo method, the illuminace or reflectance is underestimated. I am
> > wondering this is because Pov-ray ignore some physical processes or I did not
> > set the right functions. Thanks again.
>
> You may need to significantly increase the radiosity `recursion_limit`
> setting.

Thanks for your suggestions.

I am using the following code:

#version 3.7;

global_settings {
   assumed_gamma 1.0
   ambient_light 0.0
   max_trace_level 100
   adc_bailout 0.0

   radiosity {
      count 1500
      gray_threshold 0.00
      error_bound 0.05
      brightness 1.0
      normal on
      recursion_limit 20
   }
}

//-----------------------------------------------------------------------------
light_source{<0,363.97,1000> color rgb<0,1,0> parallel}

The recursion_limit has been set as the maximum. But it still a little bit
underestimate.

1) Do you have other suggestions to increase the accuracy?

2) gray_threshold has to be set as 0.0? I found that this impacts significantly
the result.

3) brightness seems has no significant on the result. Is it correct to set
brightness as 1.0?

Thanks in advance.


Post a reply to this message

From: clipka
Subject: Re: Reflectance of 3D canopy
Date: 16 Mar 2017 11:55:27
Message: <58cab56f$1@news.povray.org>
Am 16.03.2017 um 16:06 schrieb muyu:

> I am using the following code:
> 
> #version 3.7;
> 
> global_settings {
>    assumed_gamma 1.0
>    ambient_light 0.0
>    max_trace_level 100
>    adc_bailout 0.0
> 
>    radiosity {
>       count 1500
>       gray_threshold 0.00
>       error_bound 0.05
>       brightness 1.0
>       normal on
>       recursion_limit 20
>    }
> }
...

> The recursion_limit has been set as the maximum. But it still a little bit
> underestimate.

Whether this is to be expected depends on how much energy the canopy
absorbs per "bounce".

For instance, if 70% of the light is either reflected or transmitted per
bounce, the error due to reaching the maximum recursion limit should be
less than 0.1% of the total incoming energy; but if 80% is reflected or
transmitted, that error already exceeds 1%, and at 90%
reflection/transmission it reaches 12%.

> 1) Do you have other suggestions to increase the accuracy?

No, not really. The other radiosity settings should just affect
low-frequency noise-ish artifacts intrinsic to the sampling and caching
mechanisms.


> 2) gray_threshold has to be set as 0.0? I found that this impacts significantly
> the result.

Yes, a setting of 0 (being the default, and serving as a special value
indicating that the feature is to be turned off) is the most realistic
(to the extent that POV-Ray's internal naive RGB colour math is
realistic, compared with a full-fledged spectral colour model; but you
seem to be using POV-Ray in a kind of monochromatic mode anyway, so the
naive math should be fine for you).


> 3) brightness seems has no significant on the result. Is it correct to set
> brightness as 1.0?

If you change brightness significantly, you /should/ see a difference.
But 1.0 (also the default) is the most realistic setting.


Post a reply to this message

From: muyu
Subject: Re: Reflectance of 3D canopy
Date: 20 Mar 2017 06:40:00
Message: <web.58cfb12a2e25eba1cf0bfa9c0@news.povray.org>
clipka <ano### [at] anonymousorg> wrote:
> Am 16.03.2017 um 16:06 schrieb muyu:
>
> > I am using the following code:
> >
> > #version 3.7;
> >
> > global_settings {
> >    assumed_gamma 1.0
> >    ambient_light 0.0
> >    max_trace_level 100
> >    adc_bailout 0.0
> >
> >    radiosity {
> >       count 1500
> >       gray_threshold 0.00
> >       error_bound 0.05
> >       brightness 1.0
> >       normal on
> >       recursion_limit 20
> >    }
> > }
> ...
>
> > The recursion_limit has been set as the maximum. But it still a little bit
> > underestimate.
>
> Whether this is to be expected depends on how much energy the canopy
> absorbs per "bounce".
>
> For instance, if 70% of the light is either reflected or transmitted per
> bounce, the error due to reaching the maximum recursion limit should be
> less than 0.1% of the total incoming energy; but if 80% is reflected or
> transmitted, that error already exceeds 1%, and at 90%
> reflection/transmission it reaches 12%.
>
> > 1) Do you have other suggestions to increase the accuracy?
>
> No, not really. The other radiosity settings should just affect
> low-frequency noise-ish artifacts intrinsic to the sampling and caching
> mechanisms.
>
>
> > 2) gray_threshold has to be set as 0.0? I found that this impacts significantly
> > the result.
>
> Yes, a setting of 0 (being the default, and serving as a special value
> indicating that the feature is to be turned off) is the most realistic
> (to the extent that POV-Ray's internal naive RGB colour math is
> realistic, compared with a full-fledged spectral colour model; but you
> seem to be using POV-Ray in a kind of monochromatic mode anyway, so the
> naive math should be fine for you).
>
>
> > 3) brightness seems has no significant on the result. Is it correct to set
> > brightness as 1.0?
>
> If you change brightness significantly, you /should/ see a difference.
> But 1.0 (also the default) is the most realistic setting.


Thanks. 1) Regarding my simulations, around 50% of the light is reflected in
near-infrared. So physically the expected error should be much less than 1%.
This should be neglible?

2) However, I found almost 10%  under-estimates compared with the reference
using Monte Carlo method. What's the possible reasons for this? Should I
increase the brightness or the light intensity?


Post a reply to this message

From: clipka
Subject: Re: Reflectance of 3D canopy
Date: 20 Mar 2017 08:49:21
Message: <58cfcfd1$1@news.povray.org>
Am 20.03.2017 um 11:38 schrieb muyu:

> Thanks. 1) Regarding my simulations, around 50% of the light is reflected in
> near-infrared. So physically the expected error should be much less than 1%.
> This should be neglible?

> 2) However, I found almost 10%  under-estimates compared with the reference
> using Monte Carlo method. What's the possible reasons for this? Should I
> increase the brightness or the light intensity?

No ideas at the moment. Maybe if you posted the resulting images, the
distribution of light within the canopy might give a hint.

You mentioned reflection above; did you also account for the transmitted
light?


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.