POV-Ray : Newsgroups : povray.documentation.inbuilt : Finish-level Fresnel Server Time
21 Dec 2024 10:42:07 EST (-0500)
  Finish-level Fresnel (Message 1 to 10 of 21)  
Goto Latest 10 Messages Next 10 Messages >>>
From: clipka
Subject: Finish-level Fresnel
Date: 21 Dec 2016 03:55:56
Message: <585a439c$1@news.povray.org>
I'm changing the way the `finish` keyword will act when specified right
inside the `finish` block.

The future syntax will be as follows:

    FINISH:
      finish { [FINISH_IDENTIFIER] [FINISH_ITEMS...] }
    FINISH_ITEMS:
      ... | fresnel FLOAT | ...


Setting this to `on` (=1) will cause POV-Ray to realistically account
for the Fresnel effect in all of the following features:

  - ambient
  - diffuse
  - emission
  - phong
  - specular

Setting this to `off` (=0) will cause POV-Ray to revert to the default
behaviour.

The parameter can also be set to an intermediate value, in order to
allow for the (approximate) modelling of anti-rective coatings.

_Interaction with Albedo_:

The `diffuse albedo DIFFUSE`, `phong albedo PHONG` and `specular albedo
SPECULAR` syntax, which is normally used to specify the effective
_bihemispherical albedo_ of that respective component, does not work as
advertised when finish-level `fresnel` is set to non-zero. Instead,
`diffuse albedo DIFFUSE` will specify the albedo the object would
exhibit if it had a refractive index of 1, while `phong albedo PHONG`
and `specular albedo SPECULAR` will specify the albedo the object would
exhibit if it had an infinitely large refractive index.

As a result, while you would normally want to choose paramaters such
that DIFFUSE + PHONG + SPECULAR <= 1, with finish-level `fresnel` set to
a non-zero value you would want to choose parameters such that DIFFUSE
<= 1 and PHONG + SPECULAR <= 1.

For optimal realism, you should specify `diffuse albedo 1 phong albedo 0
specular albedo 1`, and control the brightness of the diffuse component
via the layer pigment.

_Interaction with Reflection_:

Setting finish-level `fresnel` will automatically activate (if set to a
non-zero value) or de-activate (if set to zero) the reflection-level
`fresnel` parameter. This can be overridden by specifying the reflection
parameters _after_ the finish-level `fresnel` parameter.

For optimal realism, the maximum reflection should be set equal to the
finish-level `fresnel` parameter, while the minimum reflection should be
set to zero.

_Interaction with Subsurface Light Transport_:

When subsurface light transport is enabled, the finish-level `fresnel`
parameter will have no effect on the diffuse feature; instead, the
feature will always act as if the parameter had been set to 1.

_Interaction with Radiosity_:

Radiosity-based illumination currently does not account for the Fresnel
effect on incoming light, regardless of the finish-level `fresnel`
parameter.


Post a reply to this message

From: clipka
Subject: Re: Finish-level Fresnel
Date: 21 Dec 2016 04:07:38
Message: <585a465a@news.povray.org>
Am 21.12.2016 um 09:55 schrieb clipka:
> I'm changing the way the `finish` keyword will act when specified right
> inside the `finish` block.

Just posted a pair of sample images to povray.binaries.images.


Post a reply to this message

From: clipka
Subject: Re: Finish-level Fresnel
Date: 21 Dec 2016 04:20:03
Message: <585a4943$1@news.povray.org>
Am 21.12.2016 um 09:55 schrieb clipka:

> The `diffuse albedo DIFFUSE`, `phong albedo PHONG` and `specular albedo
> SPECULAR` syntax, which is normally used to specify the effective
> _bihemispherical albedo_ of that respective component, does not work as

Make that "bihemispheric albedo".


Post a reply to this message

From: Jim Holsenback
Subject: Re: Finish-level Fresnel
Date: 21 Dec 2016 06:33:16
Message: <585a687c$1@news.povray.org>
On 12/21/2016 3:55 AM, clipka wrote:
> I'm changing the way the `finish` keyword will act when specified right
> inside the `finish` block.
>
> The future syntax will be as follows:
>
>     FINISH:
>       finish { [FINISH_IDENTIFIER] [FINISH_ITEMS...] }
>     FINISH_ITEMS:
>       ... | fresnel FLOAT | ...
>
>
> Setting this to `on` (=1) will cause POV-Ray to realistically account
> for the Fresnel effect in all of the following features:
>
>   - ambient
>   - diffuse
>   - emission
>   - phong
>   - specular

lol ... how am i supposed to get caught up if you keep changing/adding

testing allows:

finish {
   fresnel on
   specular S_Value fresnel off
   }

does that mean /all/ applicable attributes get fresnel treatment 
/except/ specular


Post a reply to this message

From: Stephen
Subject: Re: Finish-level Fresnel
Date: 21 Dec 2016 06:49:29
Message: <585a6c49$1@news.povray.org>
On 12/21/2016 11:33 AM, Jim Holsenback wrote:
>
> lol ... how am i supposed to get caught up if you keep changing/adding

You should control the release to the main program when you are happy 
with the documentation.

-- 

Regards
     Stephen


Post a reply to this message

From: Jim Holsenback
Subject: Re: Finish-level Fresnel
Date: 21 Dec 2016 07:10:08
Message: <585a7120$1@news.povray.org>
On 12/21/2016 6:49 AM, Stephen wrote:
> On 12/21/2016 11:33 AM, Jim Holsenback wrote:
>>
>> lol ... how am i supposed to get caught up if you keep changing/adding
>
> You should control the release to the main program when you are happy
> with the documentation.
>

if it /were/ only true!!! lately i've been practicing /going with the 
flow/ so i guess the only thing to do is run faster ;-)


Post a reply to this message

From: clipka
Subject: Re: Finish-level Fresnel
Date: 21 Dec 2016 07:29:06
Message: <585a7592$1@news.povray.org>
Am 21.12.2016 um 12:33 schrieb Jim Holsenback:
> On 12/21/2016 3:55 AM, clipka wrote:
>> I'm changing the way the `finish` keyword will act when specified right
>> inside the `finish` block.
>>
>> The future syntax will be as follows:
>>
>>     FINISH:
>>       finish { [FINISH_IDENTIFIER] [FINISH_ITEMS...] }
>>     FINISH_ITEMS:
>>       ... | fresnel FLOAT | ...
>>
>>
>> Setting this to `on` (=1) will cause POV-Ray to realistically account
>> for the Fresnel effect in all of the following features:
>>
>>   - ambient
>>   - diffuse
>>   - emission
>>   - phong
>>   - specular
> 
> lol ... how am i supposed to get caught up if you keep changing/adding

Sorry. Call it necessary cleanup (adding ambient and emission to the
mix), plus a minor improvement while I was on it (making it a float
setting rather than a bool).

Smile and be glad, for things could be worse -- I'm currently already
restraining myself when it comes to entirely /new/ features ;)

(*tries to wriggle out of straightjacket*)


> testing allows:
> 
> finish {
>   fresnel on
>   specular S_Value fresnel off
>   }
> 
> does that mean /all/ applicable attributes get fresnel treatment
> /except/ specular

No, it means that /no/ attribute gets fresnel treatment, because the
setting /always/ applies to /all/ elements, and the later "fresnel off"
supersedes the earlier "fresnel on".

This is similar how the "metallic" setting at the finish level works:
While it is perfectly legal to write

    finish {
      phong 1 metallic on
      specular 1 metallic off
      }

this is misleading style, since "metallic" always applies to both phong
and specular. You might just as well write

    finish {
      phong 1
      specular 1
      metallic on metallic off
      }

with the later "metallic" statement winning over the earlier one. Which
in turn is just like

    finish {
      specular 1
      specular 0
      }

is also perfectly legal but only the second "specular" wins.


This is a side effect of (A) allowing users to specify the finish
parameters in arbitrary order, (B) allowing users to specify a
"template" finish at the beginning of the finish block and then override
individual parameters from that template, and (C) still keeping the
parser reasonably simple (well, maybe more like "not _batshit_ crazy
convoluted").


Post a reply to this message

From: Stephen
Subject: Re: Finish-level Fresnel
Date: 21 Dec 2016 07:41:05
Message: <585a7861$1@news.povray.org>
On 12/21/2016 12:10 PM, Jim Holsenback wrote:
> On 12/21/2016 6:49 AM, Stephen wrote:
>> On 12/21/2016 11:33 AM, Jim Holsenback wrote:
>>>
>>> lol ... how am i supposed to get caught up if you keep changing/adding
>>
>> You should control the release to the main program when you are happy
>> with the documentation.
>>
>
> if it /were/ only true!!! lately i've been practicing /going with the
> flow/ so i guess the only thing to do is run faster ;-)

Watch you don't get the sidewalk coded away from under you. :)

-- 

Regards
     Stephen


Post a reply to this message

From: clipka
Subject: Re: Finish-level Fresnel
Date: 21 Dec 2016 07:46:26
Message: <585a79a2@news.povray.org>
Am 21.12.2016 um 13:10 schrieb Jim Holsenback:
> On 12/21/2016 6:49 AM, Stephen wrote:
>> On 12/21/2016 11:33 AM, Jim Holsenback wrote:
>>>
>>> lol ... how am i supposed to get caught up if you keep changing/adding
>>
>> You should control the release to the main program when you are happy
>> with the documentation.
>>
> 
> if it /were/ only true!!! lately i've been practicing /going with the
> flow/ so i guess the only thing to do is run faster ;-)

That's the spirit!

Here, let me dangle this carrot before your nose... ;)


Post a reply to this message

From: clipka
Subject: Re: Finish-level Fresnel
Date: 21 Dec 2016 07:48:57
Message: <585a7a39$1@news.povray.org>
Am 21.12.2016 um 13:41 schrieb Stephen:
> On 12/21/2016 12:10 PM, Jim Holsenback wrote:
>> On 12/21/2016 6:49 AM, Stephen wrote:
>>> On 12/21/2016 11:33 AM, Jim Holsenback wrote:
>>>>
>>>> lol ... how am i supposed to get caught up if you keep changing/adding
>>>
>>> You should control the release to the main program when you are happy
>>> with the documentation.
>>>
>>
>> if it /were/ only true!!! lately i've been practicing /going with the
>> flow/ so i guess the only thing to do is run faster ;-)
> 
> Watch you don't get the sidewalk coded away from under you. :)

When I'm done coding, he'll be able to render his own perfectly
realistic sidewalk ;)

Now off with you -- let the man do his job...


Post a reply to this message

Goto Latest 10 Messages Next 10 Messages >>>

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