Difference between revisions of "Documentation Talk:Reference Section 6.2"
Jholsenback (talk | contribs) m (follow up) |
Jholsenback (talk | contribs) m (another stab at it ...) |
||
| Line 36: | Line 36: | ||
<code>pass_through</code> if necessary by simply using <code>photons { | <code>pass_through</code> if necessary by simply using <code>photons { | ||
pass_through off }</code>.</p> --[[User:Jholsenback|jholsenback]] 09:38, 14 April 2010 (UTC) | pass_through off }</code>.</p> --[[User:Jholsenback|jholsenback]] 09:38, 14 April 2010 (UTC) | ||
| + | |||
| + | |||
| + | * ok ... after reading this about a bazillion times this is what I've come up with ... sheesh | ||
| + | |||
| + | |||
| + | <p>The keyword <code>pass_through</code> causes photons to pass through the object <strong>unaffected</strong> on their way to a target object. Once a photon hits the target object, it will ignore the <code>pass_through</code> flag. This is basically a photon version of the <code>no_shadow</code> keyword, and photons on their way to their target are <em>never</em> collected by any surface or media whatsoever. If you use the <code>no_shadow</code> keyword, the object will be tagged as | ||
| + | <code>pass_through</code> automatically, and will suppress <em>any</em> interaction with photons whatsoever, regardless of any settings in the <code>photons</code> block. | ||
| + | </p> | ||
| + | |||
| + | :* --[[User:Jholsenback|jholsenback]] 11:37, 14 April 2010 (UTC) | ||
Latest revision as of 11:37, 14 April 2010
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_throughobject.
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_throughwere 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_shadowwould automatically turn onpass_through, and that explicitly specifyingpass_through offcould be used to disable it again; this is not the case. Instead, specifyingno_shadowwill suppress any interaction with photons whatsoever, regardless of any settings in thephotonsblock.
- 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.
- --jholsenback 11:37, 14 April 2010 (UTC)