POV-Ray : Newsgroups : povray.beta-test : Finish block dispersion handling. v3.8 (and v3.7). : Finish block dispersion handling. v3.8 (and v3.7). Server Time
13 Aug 2022 14:55:49 EDT (-0400)
  Finish block dispersion handling. v3.8 (and v3.7).  
From: William F Pokorny
Date: 1 Jul 2021 07:37:40
Message: <60dda904$1@news.povray.org>
Expect not much of an issue given how long it's been this way, but, FWIW...

For backward compatibility we support some interior keywords in the 
finish block too. The related finish variables are Temp_Caustics, 
Temp_IOR, Temp_Dispersion and Temp_Refract.

The documentation doesn't indicate dispersion was ever previously 
supported for the finish block, but we have partial code for it.

The finish block parsing is missing for Temp_Dispersion. User's having 
scenes with finish block dispersion get syntax errors.

Taking the ior as being specified in the finish block, if a user were to 
specify dispersion in the interior block, as our documentation 
indicates, they get confusing results due this code in object.cpp:

if (Finish->Temp_IOR >= 0.0)
     Object->interior->IOR = Finish->Temp_IOR;
     Object->interior->Dispersion = Finish->Temp_Dispersion;

The defaulted Finish->Temp_Dispersion value (1.0) is used and the user 
has no way to override the default due the lack of finish { dispersion } 

And, yes, users can mix the interior vs finish block definitions 
supported in both blocks in confusing ways. We don't warn that 
conflicting definitions are a problem, and, such conflicts are not 
flagged during parsing. A finish block ior>0.0 overrides any ior set in 
the interior block.

The compatibility warning message when you specify, for example, ior in 
the finish block is misleading. All about backwards compatibility when 
the concern is, I believe, forward compatibility.

Index of refraction value should be specified in 'interior{...}' statement.
Use of this syntax may not be backwards compatible with earlier versions 
of POV-Ray.

Bill P.

Post a reply to this message

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