POV-Ray : Newsgroups : povray.general : Why is radiosity importance set in the default{} block? : Re: Why is radiosity importance set in the default{} block? Server Time
11 May 2024 04:49:51 EDT (-0400)
  Re: Why is radiosity importance set in the default{} block?  
From: William F Pokorny
Date: 18 Jan 2024 06:59:17
Message: <65a91295@news.povray.org>
On 1/17/24 13:24, Alain Martel wrote:
> My guess :
> importance is an object property, just like a pigment, texture or 
> finish. You set it globally in the default block to set the default 
> importance value to be used by most objects, and you set it per object 
> to a larger value for relatively small and bright objects.

I think that's a pretty good guess as to how it came about. To my mind, 
it is a global radiosity setting which changes how radiosity works 
overall. Expect I'll move it to global_settings { radiosity{} } in yuqk.

> 
> The default block is used to set some default properties for objects 
> that don't have explicit properties.
> Originally, it was used to set a default texture or texture component 
> such as pigment or finish. 

Understand.

> It have been extended to also be able to set 
> default interior, SSLT and radiosity properties of objects.

No. The only options currently available within default{} are: 
texture{}, pigment{}, normal{}, finish{}, radiosity{ importance <0..1 
float> } and camera{}.

There is an open github issue requesting that default{} support 
interior{}, but it's never been implemented(a):

https://github.com/POV-Ray/povray/issues/246
Port of FS319 - Add interior to #default directive #246

No SSLT and radiosity properties have been added to any official POV-Ray 
releases of which I am aware. Maybe it's been done somewhere?

Bill P.

(a) One of the things a little clunky with v3.8 is all objects now have 
an interior{} created. I think clipka did this to support the finish 
level fresnel work which 'requires' a default ior of >1.0 (He tended to 
use 1.5 and behavior is somewhat tuned for 1.5). However, today, the 
interior default ior is 1.0 - and we are carrying around a bunch of 
interior{}s we don't need.


Aside: Somewhat on the github request #246. It should be we can use:

default { finish { ior 1.5 } }

to default the automatically created interior's IORs. However, something 
either wasn't maintained correctly over time for backward compatibility 
or never implemented correctly. I suspect an order of operations problem 
in the object post processing, but who knows. The code below works:

object {
   Iso99
   texture {
     pigment { rgbt <0,0.1,0,0.9> } finish { ior 1.5 } }
   }

object {
   Iso99
   texture {
     pigment { rgbt <0,0.1,0,0.9> } finish { ior 1.5 } }
     interior {}
   }

(yuqk is on a path to two IORs. One for interiors / refraction in the 
interior{} block. One for surfaces and reflection related effects in the 
finish{} block. Started the work a long while ago now... Someday!)

Bill P.


Post a reply to this message

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