POV-Ray : Newsgroups : povray.general : odd behavior of photon reflection/refraction defaults : Re: odd behavior of photon reflection/refraction defaults Server Time
15 Dec 2025 22:04:11 EST (-0500)
  Re: odd behavior of photon reflection/refraction defaults  
From: Cousin Ricky
Date: 8 Dec 2025 12:24:34
Message: <693709d2@news.povray.org>
On 2025-12-08 07:46 (-4), Kenneth wrote:
> 
> 1) With *defaults* for both light_source and object, there are NO refraction
> effects. This agrees with the documentation: one default (or both?) are OFF.
> 
> 2a) With default for the light_source and 'refraction on' for the object, there
> ARE refraction effects. So in this case, the default OFF for the light_source is
> apparently ON instead (or has been overridden.)
> 
> 2b) With 'refraction off' for light_source and 'refraction on' for object, NO
> refraction effects, as expected.
> 
> 3a) With 'refraction off' for light_source and *default* for object, NO
> refraction effects, as expected.
> 
> 3b) With 'refraction on' for light_source and *default* for object, there ARE
> refraction effects. So in this case, the default OFF for the object is
> apparently ON instead (or has been overridden.)
> 
> From these results, it is apparent that the default behaviors are not
> reliable and could cause unexpected rendering effects-- especially when there
> are multiple objects and lights in a scene, each with its own photon block. (The
> workaround would be to explicitly state ON or OFF for the various
> parameters...and not rely on the defaults at all, unfortunately.)

We seem to have 3 categories of scenarios:

1. With no light_source photons block or with an empty light_source
photons block, we get caustics only from explicit refraction on target
objects

2. With light_source { photons { refraction off } }, we get no caustics
from any object.

3. With light_source { photons { refraction on } }, we get caustics from
all target objects by default.

My results are the same with versions 3.5, 3.6.1, 3.7.0.10, and
3.8.0-beta.2, all on GNU/Linux.

My experience has been the same as Alain's.  I only use a light_source
photons block to turn photons off.

Of course, when we add reflection, we get more permutations, but I've
never had occasion to turn one off without the other in a light_source.

none = no photons block
empty = photons { }
target = photons { target }
target, off = photons { target refraction off }
target, on = photons { target refraction on }


Post a reply to this message


Attachments:
Download 'default_photons-38-1.jpg' (24 KB) Download 'default_photons-38-2.jpg' (24 KB) Download 'default_photons-38-3.jpg' (21 KB) Download 'default_photons-38-4.jpg' (25 KB)

Preview of image 'default_photons-38-1.jpg'
default_photons-38-1.jpg

Preview of image 'default_photons-38-2.jpg'
default_photons-38-2.jpg

Preview of image 'default_photons-38-3.jpg'
default_photons-38-3.jpg

Preview of image 'default_photons-38-4.jpg'
default_photons-38-4.jpg


 

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