POV-Ray : Newsgroups : povray.advanced-users : Realistic scattering : Re: Realistic scattering Server Time
23 Apr 2024 13:17:38 EDT (-0400)
  Re: Realistic scattering  
From: clipka
Date: 11 Apr 2018 13:33:36
Message: <5ace46f0$1@news.povray.org>
Am 11.04.2018 um 01:52 schrieb William F Pokorny:

> This note exists in our documentation only where diffuse albedo is
> specified - and I missed it. I was too confused about little or no
> effect when I tried it. I'm remain foggy on the albedo workings.
> 
> - Does the "only works with brilliance != 1.0" not apply to phong and
> specular albedo too... Or does it and we don't mention it in our
> documentation?

With highlights, it's not `brilliance` but `roughness` and `phong_size`,
respectively. There, too, is some "sweet spot" for those settings where
albedo doesn't make a difference, but usually the settings are far away
from that.

The motivation of the`albedo` keyword is that traditionally, the
`diffuse` and specular settings effectively specify the /peak/
brightness of the effect; so e.g. when you specify `diffuse 0.2 specular
0.5`. it means that under nominal lighting conditions the brightest spot
of the highlight has a brightness of 0.7.

But for the sake of designing realistic materials, you don't need to
know the /peak/ reflectivity of a material, but the /total/
reflectivity; and as you increase the "spread" of the effect, you also
increase that total reflectivity if you leave the peak brightness unchanged.

The `albedo` keyword puts the effect in a mode where it compensates for
the "spread" parameter: if e.g. you specify `specular albedo 0.5`, it
means that 50% of all the incoming light is reflected back (specularly),
no matter what the `roughness` parameter is set to.


The `albedo`-style parameterization was primarily designed for the
highlight effects, to make it easy to get the brightness synced up with
the specular reflection as specified by the `reflection` settings,
because both model the same physical effect (albeit for light from
different sources, namely light sources vs. other objects), so for
realism it is quite important to get them lined up properly.

As for the `diffuse` keyword, the `brilliance` setting breaks realism
anyway, and for the only realistic setting there is no difference; but
`ambient`-style parameterization was added nonetheless, if only for
giggles and completeness.


> - I've never used 'diffuse albedo' without 'phong albedo' or 'specular
> albedo' being specified too as I thought the point was to consider the
> contributions together and further that diffuse albedo would be 1.0 and
> phong albedo + specular albedo also = 1.0. I see in Igmar's code he has
> specular 0.0 so not having the albedo qualifier there likely no issue.
> If his specular value were to have been other than 1.0 what would
> happen? Might suppose the diffuse calculation would still consider the
> specular but would the specular calculation consider the diffuse albedo
> value?
> 
> - What happens in the reverse if someone specifies plain diffuse but
> phong/specular albedo values ?

The `albedo` keyword only switches to another parameterization for that
particular feature; the other features remain unaffected.

For example, `diffuse albedo 0.2 specular albedo 0.5` means that 20% of
the incoming light is reflected diffusely, while 50% is reflected
specularly.


There's a caveat when `fresnel` is enabled: In that case, the refractive
index also affects the brightness of the diffuse and specular
components, but `albedo` does not compensate for this.


> - We have only two sample scenes using albedo. The first your torus2.pov
> and only in the default {} with brilliance unchanged. The other
> finish_fresnel.pov where the the diffuse/specular values match as I
> expect, but where brilliance is not specified. Should brilliance at
> other than 1.0 be added in that scene?

While the scenes /use/ albedo, none of them really /demonstrates/ it;
it's more or less just in there because I've made it a habit of always
using it.


> Aside: A sample scene showing an albedo set up versus not with visible
> differences would probably be a help.

That's a bit nonsensical in my view, because you can't tell from an
image whether `albedo` was used or not - it's just a different way to
parameterize the individual finish features, and you can get the exact
same results with the classic parameterization. The difference is in
ease of use, not effect: With the classic parameterization you have to
guess and toy around until you /think/(*) it's realistic (or wreck your
brain trying to compensate for the "spread" parameter manually), whereas
with the `albedo` setting you can tell just from the numbers whether the
material is reasonably realistic.

(*In general, with the classic setting people tend to make highlights
unrealistically dim, except for /very/ blurry highlights which people
tend to make unrealistically bright.)


What would make sense, I guess, would be a scene comparing two /series/
of objects with changes to the `roughness` setting, with constant
`specular` setting, one series using `albedo` and the other using the
classic parameterization, to demonstrate the compensating effect of
`albedo`.


Post a reply to this message

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