POV-Ray : Newsgroups : povray.documentation.inbuilt : Finish-level Fresnel : Re: Finish-level Fresnel Server Time
25 Apr 2024 14:57:47 EDT (-0400)
  Re: Finish-level Fresnel  
From: clipka
Date: 21 Dec 2016 10:35:38
Message: <585aa14a$1@news.povray.org>
Am 21.12.2016 um 14:55 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.
> 
> updated to include the additional narrative you posted here:
> http://wiki.povray.org/content/Reference:Finish

I'm afraid so say that, but I'm still not happy with the status quo :}

As for the syntax, I've decided to take it into my own hands now. As for
the rest of the page, I'll just continue to gripe and whine.

You know that something is utterly wrong with the structure of a page if
the table of contents is preceded by an entire 2 pages worth of text.

I think the description of the finish-level `fresnel` keyword and its
effect is utterly misplaced there, and should instead be given a section
of its own -- possibly behind "Conserve Energy for Reflection", because
these two are actually pretty closely related: finish-level `fresnel`
does a similar thing for the various finish components that
`conserve_energy` has been doing for transmitted light (with the
difference being that `fresnel` goes solely by the materials refractive
index, whereas `conserve_energy` would also honor non-fresnel variable
reflection).

In the sections describing the individual finish components, I would
briefly mention that the respective component is also affected by the
finish-level `fresnel` keyword, but defer the reader to the
fresnel-specific section for details.

(In a similar vein, I think the `use_alpha` keyword is also misplaced.
There's not much to say about it, but it is a dedicated feature
nonetheless, and shouldn't be in the section that deals with finish /per
se/.)


The "Diffuse", "Phong" and "Specular" sections still have the "fresnel"
keyword appearing in examples that seems to no longer have any
connection to that keyword.

Speaking of the "Diffuse" section, the description of the example in
there has struck my as rather odd:

-------------------------------------------------------
finish { diffuse albedo 0.7 fresnel }

Means that 70% of the light seen comes from direct illumination from
light sources. The default value for diffuse is 0.6.
-------------------------------------------------------

In this form this is nonsense: "the light seen" that "comes from direct
illumination from light sources" would also include highlights.

I'd suggest something along the following lines:
-------------------------------------------------------
finish { diffuse albedo 0.7 }

means that a white object with this finish reflects 70% of all incoming
light /diffusely/.
-------------------------------------------------------


On to the "Phong" and "Specular" sections: In both of these, the
`albedo` keyword description was inserted in a section that deals with
`phong_size` or `roughness`, respectively, now leaving the sentence "If
phong/specular is not specified phong_size/roughmess has no effect."
dangling, disconnected from the section it belongs to.


Also, the description of the reflection's `exponent` parameter is pretty
bogus (but that's not your fault): Claiming that "POV-Ray uses a limited
light model that cannot distinguish between objects which are simply
brightly colored and objects which are extremely bright" is just plain
wrong.

I guess the text is just the result of people struggling to find an
explanation for a phenomenon they failed to understand back then, which
can now be named with just one word: Gamma!

The text mentions "partially reflective surfaces". Now while most
operations in the render engines _multiply_ colours, in this particular
case colours are _added_ - namely the object's own colour and the
reflected colour. And while multiplications work fine in any power-law
gamma colour space, additions absolutely positively don't. In
"assumed_gamma 2.2" mode, "middle and lower brightness objects typically
look too bright" when another colour is added to them.

So we might just as well replace the entire section with something like:
-------------------------------------------------------
exponent
This property pre-dates the introduction of proper gamma handling.
People found that it was difficult to model partially reflective
surfaces in a realistic way, as middle and lower brightness objects
typically looked too bright when reflected. As a means work around the
phenomenon the optional exponent keyword was added, producing non-linear
reflection intensities. The default value of 1.0 produces a linear
curve. Lower values darken middle and low intensities and keep high
intensity reflections bright. While this feature may still be used for
artistic effects, it is strongly discouraged for renders aiming at
realism. The original phenomenon is well understood by now, and using
"assumed_gamma 1.0" as recommended will avoid it entirely.
-------------------------------------------------------

(Hold off on this for a moment though; I'll do a few experiments to
verify that I'm right in my explanation of that old phenomenon.)


Post a reply to this message

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