Documentation Talk:Reference Section 6.2
pass_through
Here's how it really currently works in POV-Ray 3.6:
By default, any objects between the photon source and target will completely block photons, even if the object in question is transparent. To explicitly allow photons to transmit through such an object, mark the object as photons { pass_through }
.
In POV-Ray 3.6, specifying pass_through
had the following effect:
- If the object was normally opaque, it would not block photons on their way to their target at all, and not even affect their colour.
- If the object was partially or fully transparent, it would erroneously amplify photons on their way to their target; if the object had an IOR, part of the amplified light would even be subject to refraction in the
pass_through
object.
Note: pass_through
only affects the interaction with photons on their way to their target; photons that have already transmitted through or reflected off their target will always interact with subsequent objects normally, regardless of the pass_through
setting.
Marking an object as no_shadow
will also prevent it from blocking photons; however, this will not only suppress interaction with photons on their way to their target, but also with photons that have already transmitted through or reflected off their target.
- you seem to be saying that there are some cases that the photon processing of v3.6 were not working correctly with the above statements ... is that correct? During my change-log review I noticed more than several references to work being done on that code. What was broken and or fixed wasn't exactly spelled out. Have these conditions been corrected with v3.7?
Note: The documentation of POV-Ray 3.6 contained some errors regarding both pass_through
and no_shadow
with regard to photons:
- Media in objects marked
pass_through
were said to still collect photons on their way to their target; this is not the case. Instead, photons on their way to their target are never collected by any surface or media whatsoever. - It was said that specifying
no_shadow
would automatically turn onpass_through
, and that explicitly specifyingpass_through off
could be used to disable it again; this is not the case. Instead, specifyingno_shadow
will suppress any interaction with photons whatsoever, regardless of any settings in thephotons
block.
- and the above are the corrections that need to be worked into this narrative:
The keyword pass_through
causes photons to pass through the
object unaffected on their way to a target object. Once a
photon hits the target object, it will ignore the pass_through
flag. This is basically a photon version of the no_shadow
keyword, with the exception that media within the object will still be
affected by the photons (unless that media specifies collect off). If you
use the no_shadow
keyword, the object will be tagged as
pass_through
automatically. You can then turn off
pass_through
if necessary by simply using photons {
pass_through off }
.
--jholsenback 09:38, 14 April 2010 (UTC)