POV-Ray : Newsgroups : povray.documentation.inbuilt : Finish-level Fresnel : Finish-level Fresnel Server Time
20 Apr 2024 03:24:12 EDT (-0400)
  Finish-level Fresnel  
From: clipka
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

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