Documentation Talk:Reference Section 6.2

From POV-Wiki
Revision as of 11:37, 14 April 2010 by Jholsenback (talk | contribs) (another stab at it ...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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 on pass_through, and that explicitly specifying pass_through off could be used to disable it again; this is not the case. Instead, specifying no_shadow will suppress any interaction with photons whatsoever, regardless of any settings in the photons 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)


  • ok ... after reading this about a bazillion times this is what I've come up with ... sheesh


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, and photons on their way to their target are never collected by any surface or media whatsoever. If you use the no_shadow keyword, the object will be tagged as pass_through automatically, and will suppress any interaction with photons whatsoever, regardless of any settings in the photons block.