POV-Ray : Newsgroups : povray.beta-test : Experimental alternative diffuse models Server Time
2 May 2024 05:04:59 EDT (-0400)
  Experimental alternative diffuse models (Message 2 to 11 of 21)  
<<< Previous 1 Messages Goto Latest 10 Messages Next 10 Messages >>>
From: Le Forgeron
Subject: Re: Experimental alternative diffuse models
Date: 31 Mar 2016 15:08:16
Message: <56fd75a0$1@news.povray.org>
Le 31/03/2016 19:27, clipka a écrit :
> oren_nayar ROUGHNESS

ok... what is a good value, excepted for 0.0 which disable it ?

No link to equations, no idea about what is sigma.

For lommel_seeliger, it's clear: from 0 to 1.

It also seems the parser allow both oren_nayar & lommel_seeliger at the same time.
Is it intended ? Is there a fusion of models (when neither is 0) ?


Post a reply to this message

From: clipka
Subject: Re: Experimental alternative diffuse models
Date: 31 Mar 2016 15:26:59
Message: <56fd7a03$1@news.povray.org>
Am 31.03.2016 um 21:08 schrieb Le_Forgeron:
> Le 31/03/2016 19:27, clipka a écrit :
>> oren_nayar ROUGHNESS
> 
> ok... what is a good value, excepted for 0.0 which disable it ?
> 
> No link to equations, no idea about what is sigma.

It's the standard deviation of the facet slopes, and can range anywhere
from 0 to just short of infinity. Something around 0.3 might be a good
place to start.

> It also seems the parser allow both oren_nayar & lommel_seeliger at the same time.
> Is it intended ? Is there a fusion of models (when neither is 0) ?

Strictly speaking, with the current implementation a non-zero
lommel_seeliger setting gives you an average not of the Lommel-Seeliger
and Lambertian models, but of the Lommel-Seeliger and Oren-Nayar models,
with the Lambertian model just being the sigma = 0.0 special case thereof.


Post a reply to this message

From: clipka
Subject: Re: Experimental alternative diffuse models
Date: 2 Apr 2016 12:35:58
Message: <56fff4ee$1@news.povray.org>
Am 31.03.2016 um 19:27 schrieb clipka:

> In a totally strict sense, diffuse reflection is the effect that light
> hitting a surface bounces off in a direction that is entirely
> independent of the angle of incidence. There is essentially just one
> manner in which this can happen, and it is perfectly described by the
> so-called Lambertian model, which is what POV-Ray uses.

I think I wrote nonsense there.

Also, a few more notes:

- My implementation of the Oren-Nayar model turns out to be bugged.

- The mix of Lommel-Seeliger and Lambert is also known as "Lunar-Lambert".


Post a reply to this message

From: And
Subject: Re: Experimental alternative diffuse models
Date: 5 Apr 2016 02:15:01
Message: <web.570356e876d9c5203feafd5e0@news.povray.org>
clipka <ano### [at] anonymousorg> wrote:
> Am 31.03.2016 um 19:27 schrieb clipka:
>
>
> - My implementation of the Oren-Nayar model turns out to be bugged.
>

I like the feature, could I help test it? I have read this model on wikipedia
and thought about it for a while.


Post a reply to this message

From: And
Subject: Re: Experimental alternative diffuse models
Date: 5 Apr 2016 08:55:00
Message: <web.5703b49276d9c5203feafd5e0@news.povray.org>
"And" <49341109@ntnu.edu.tw> wrote:
> clipka <ano### [at] anonymousorg> wrote:
> > Am 31.03.2016 um 19:27 schrieb clipka:
> >
> >
> > - My implementation of the Oren-Nayar model turns out to be bugged.
> >
>
> I like the feature, could I help test it? I have read this model on wikipedia
> and thought about it for a while.

I just tried your new texture. The bigger the sigma the surface appears darker
when applying the same diffuse value. It is from the Oren-Nayar model itself I
have confirmed.

Is this the bug you said?


Post a reply to this message

From: clipka
Subject: Re: Experimental alternative diffuse models
Date: 5 Apr 2016 14:43:30
Message: <57040752@news.povray.org>
Am 05.04.2016 um 14:50 schrieb And:
> "And" <49341109@ntnu.edu.tw> wrote:
>> clipka <ano### [at] anonymousorg> wrote:
>>> Am 31.03.2016 um 19:27 schrieb clipka:
>>>
>>>
>>> - My implementation of the Oren-Nayar model turns out to be bugged.
>>>
>>
>> I like the feature, could I help test it? I have read this model on wikipedia
>> and thought about it for a while.
> 
> I just tried your new texture. The bigger the sigma the surface appears darker
> when applying the same diffuse value. It is from the Oren-Nayar model itself I
> have confirmed.
> 
> Is this the bug you said?

No; since it's an intrinsic property of the model, I don't consider it a
bug.

What I got wrong is the dependence on "sideways" illumination, if you
know what I mean.

In the model there's a term depending on the angle between the light
source and eye directions /projected/ onto the surface (the azimuth
angle, if you like). Normally I should compute the projected vectors,
normalize them, and compute the dot product, to get the cosine of the
angle. But I forgot the normalization step.


Post a reply to this message

From: And
Subject: Re: Experimental alternative diffuse models
Date: 6 Apr 2016 03:55:01
Message: <web.5704bfa076d9c5203feafd5e0@news.povray.org>
clipka <ano### [at] anonymousorg> wrote:
> Am 05.04.2016 um 14:50 schrieb And:
> > "And" <49341109@ntnu.edu.tw> wrote:
> >> clipka <ano### [at] anonymousorg> wrote:
> >>> Am 31.03.2016 um 19:27 schrieb clipka:
> >>>
> >>>
> >>> - My implementation of the Oren-Nayar model turns out to be bugged.
> >>>
> >>
> >> I like the feature, could I help test it? I have read this model on wikipedia
> >> and thought about it for a while.
> >
> > I just tried your new texture. The bigger the sigma the surface appears darker
> > when applying the same diffuse value. It is from the Oren-Nayar model itself I
> > have confirmed.
> >
> > Is this the bug you said?
>
> No; since it's an intrinsic property of the model, I don't consider it a
> bug.
>
> What I got wrong is the dependence on "sideways" illumination, if you
> know what I mean.
>
> In the model there's a term depending on the angle between the light
> source and eye directions /projected/ onto the surface (the azimuth
> angle, if you like). Normally I should compute the projected vectors,
> normalize them, and compute the dot product, to get the cosine of the
> angle. But I forgot the normalization step.


OkOK. That sounds very easy to fix for you.

I derived a solution on what I said the albedo value getting dark when sigma
increase.
I study the formula from the wikipedia. It said A=1-0.5*..., B=0.45*...(Both
rely on the sigma)

And the result albedo seems rho*A + rho*B*(2/3-64/45/pi) instead rho
itself. So maybe you can divide it when apply the diffuse albedo feature.


Post a reply to this message

From: clipka
Subject: Re: Experimental alternative diffuse models
Date: 6 Apr 2016 07:07:31
Message: <5704edf3@news.povray.org>
Am 06.04.2016 um 09:52 schrieb And:

> I derived a solution on what I said the albedo value getting dark when sigma
> increase.
> I study the formula from the wikipedia. It said A=1-0.5*..., B=0.45*...(Both
> rely on the sigma)
> 
> And the result albedo seems rho*A + rho*B*(2/3-64/45/pi) instead rho
> itself. So maybe you can divide it when apply the diffuse albedo feature.

Thanks! That correction factor appears to make a lot more sense than the
hack I had come up with :)

Not too surprisingly, experiments indicate that it does indeed fit like
a glove.


Post a reply to this message

From: And
Subject: Re: Experimental alternative diffuse models
Date: 6 Apr 2016 07:40:01
Message: <web.5704f46d76d9c5203feafd5e0@news.povray.org>
"And" <49341109@ntnu.edu.tw> wrote:
>
> I derived a solution on what I said the albedo value getting dark when sigma
> increase.
> I study the formula from the wikipedia. It said A=1-0.5*..., B=0.45*...(Both
> rely on the sigma)
>
> And the result albedo seems rho*A + rho*B*(2/3-64/45/pi) instead rho
> itself. So maybe you can divide it when apply the diffuse albedo feature.

Should say:

For a small area 'da', incident light irradiance 'E0', and if the incident angle
'theta_i' is fixed, it will receive E0*da*cos(theta_i) energy per second. then
emit
rho*E0*da*cos(theta_i)*A
+rho*E0*da*B/pi*(
                 sin(2*theta_i)*(theta_i/2 - sin(2*theta_i)/4)
                +2*sin(theta_i)*(1/3 - pow(sin(theta_i),3)/3)
)
energy per second.


Then I apply a condition that a homogeneous hemisphere lighting, equivalent to a
fixed incident radiance 'Li', then the small area 'da' receives Li*pi*da energy
per second, emit rho*Li*pi*da*A + rho*Li*da*B*(2*pi/3-64/45) energy per second.
So get the actual albedo rho*A + rho*B*(2/3-64/45/pi).


Post a reply to this message

From: And
Subject: Re: Experimental alternative diffuse models
Date: 6 Apr 2016 08:10:00
Message: <web.5704fbc076d9c5203feafd5e0@news.povray.org>
clipka <ano### [at] anonymousorg> wrote:
> Am 06.04.2016 um 09:52 schrieb And:
>
> > I derived a solution on what I said the albedo value getting dark when sigma
> > increase.
> > I study the formula from the wikipedia. It said A=1-0.5*..., B=0.45*...(Both
> > rely on the sigma)
> >
> > And the result albedo seems rho*A + rho*B*(2/3-64/45/pi) instead rho
> > itself. So maybe you can divide it when apply the diffuse albedo feature.
>
> Thanks! That correction factor appears to make a lot more sense than the
> hack I had come up with :)
>
> Not too surprisingly, experiments indicate that it does indeed fit like
> a glove.

Ok ok! cheers.

If I don't make mistake. but it should correct because I calculate formula
carefully.


Post a reply to this message

<<< Previous 1 Messages Goto Latest 10 Messages Next 10 Messages >>>

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