POV-Ray : Newsgroups : povray.off-topic : Physically based rendering : Re: Physically based rendering Server Time
6 Oct 2024 13:18:33 EDT (-0400)
  Re: Physically based rendering  
From: clipka
Date: 25 Jun 2015 17:31:27
Message: <558c732f$1@news.povray.org>
Am 25.06.2015 um 20:13 schrieb And:
> clipka <ano### [at] anonymousorg> wrote:
>> - When using "brilliance", always use "brilliance FLOAT, FLOAT" with
>> both parameters set to the same value, and specify "brilliance on" in
>> the radiosity block. (You'll need a POV-Ray 3.7.1-alpha build for these,
>> or UberPOV.)
>>
>
> Would you tell me what the "FLOAT, FLOAT" really mean? You said it ... what it
> is bi-direction ..once to me, but I don't understand that yet.

At the default of "brilliance 1" the brightness of the diffuse component 
depends on the angle of the incoming light, following a cos(theta) law, 
where theta is the angle between the light ray and the surface normal 
(the vector perpendicular to the surface).

Similarly, if we're talking about brightness as the total amount of 
light reaching the observer from any given patch of surface, the 
brightness of the diffuse component also depends on the angle of the 
/outgoing/ light (i.e. the angle at which the surface is seen by an 
observer), following the very same cos(theta) law. However, this is 
already modeled exactly by the patch of surface appearing to get smaller 
as theta increases, while the brightness of any individual pixel remains 
constant.

Using "brilliance N" with any value other than 1 changes the dependency 
between the brightness of the diffuse component and the angle of 
incoming light: Rather than following a cos(theta) law, it now follows a 
cos(theta)^N law.

Now there is some fundamental law known to the contemporary world of 
professional and academic rendering, that any physically realistic 
shading formula must be "bi-directional", i.e. if you exchange the 
incoming and outgoing light rays, the formula must still yield the same 
result.

Thus, when you change the brightness' dependency on the incoming 
direction, you also need to change the dependency on the outgoing 
direction accordingly.

Traditionally however, POV-Ray will fail to do this, always leaving the 
brightness of an individual pixel constant no matter what the 
orientation of the surface towards the observer, which - as mentioned 
before - happens to be a perfect match for "brilliance 1", but breaks 
bi-directionality at any other setting.

Now fixing this behaviour of the "brilliance" keyword would be possible, 
but it would break each and every existing scene that makes use of 
brilliance. Therefore, I introduced an optional second parameter to 
"brilliance" which governs the dependency on the outgoing direction, 
allowing to restore bi-directionality by setting both parameters to the 
same value.


Post a reply to this message

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