POV-Ray : Newsgroups : povray.pov4.discussion.general : Realistic transmittance and filter at sharp angles of incidence Server Time
29 Mar 2024 04:13:21 EDT (-0400)
  Realistic transmittance and filter at sharp angles of incidence (Message 1 to 4 of 4)  
From: Simon Copar
Subject: Realistic transmittance and filter at sharp angles of incidence
Date: 15 May 2013 20:55:01
Message: <web.51942dab2a34952df42173100@news.povray.org>
Realistically, transmitting material is usually still absorbing across the
entire thickness of the layer. This means that when looking at an angle, the
path of the light is longer and thus the transmitted intensity is less. Even if
the layer is really thin (so that an infinitely thin surface is a good
approximation), this results in a transmittance
real_transmittance=perpendicular_transmittance^(1/|normal*ray_direction|)

Ideally, this should be done per-color, which can result in interesting color
variations with angle - although realistic in principle, in RGB model this won't
work so well (but in spectral model it should work). Just doing this just for
filter & transmit seperately should still be a big improvement and almost
physically correct.

This might not look necessary but in fact makes a huge difference: if you
specify a filtering sphere, the specular highlight is the only thing that makes
it look round, but the part in shadow looks exactly like a disc-shaped filter
glass: completely flat. In real life, the outline transmits less and the shape
looks rounded. At extreme sharp angles, no material should transmit much. Just
imagine a shadow cast by a hollow plastic sphere. Including this effect will
make transparent objects look much more realistic.

This could actually be simulated as a thin hollow shell filled with absorbing
media, but that's overkill for this purpose. This effect is seperate from the
energy conservation and should happen even if there's no reflection. A parameter
to turn this effect on or off would be nice. Probably as a tuning parameter
beteween 0 and 1 to allow greater flexibility.


Post a reply to this message

From: Samuel Benge
Subject: Re: Realistic transmittance and filter at sharp angles of incidence
Date: 16 May 2013 12:50:01
Message: <web.51950d82873d8ddeb737415a0@news.povray.org>
"Simon Copar" <inf### [at] gmailcom> wrote:
>
> This could actually be simulated as a thin hollow shell filled with absorbing
> media, but that's overkill for this purpose.

Probably. You might try the aoi pattern if you haven't done so already.

pigment{
  pigment_pattern{
    aoi
    color_map{[.5 rgb 1][1 rgb 0]}
  }
  poly_wave falloff_val
}


Post a reply to this message

From: Simon Copar
Subject: Re: Realistic transmittance and filter at sharp angles of incidence
Date: 16 May 2013 14:55:01
Message: <web.51952b5e873d8dde65a03f8f0@news.povray.org>
"Samuel Benge" <stb### [at] hotmailcom> wrote:
> "Simon Copar" <inf### [at] gmailcom> wrote:
> >
> > This could actually be simulated as a thin hollow shell filled with absorbing
> > media, but that's overkill for this purpose.
>
> Probably. You might try the aoi pattern if you haven't done so already.
>
> pigment{
>   pigment_pattern{
>     aoi
>     color_map{[.5 rgb 1][1 rgb 0]}
>   }
>   poly_wave falloff_val
> }

Right, didn't think of that. The poly_wave does not approximate the realistic
angular dependence that well (it starts rising too quickly, makes the almost
perpendicular regions too opaque), but I can just sample the curve by myself
with more entries of the pigment_map (or just push 0.5 to something like 0.75).

This will make the images so much better.

Still, built-in method would be nice to have.


Post a reply to this message

From: Samuel Benge
Subject: Re: Realistic transmittance and filter at sharp angles of incidence
Date: 19 May 2013 11:50:01
Message: <web.5198f464873d8dde6949fcad0@news.povray.org>
"Simon Copar" <inf### [at] gmailcom> wrote:
> "Samuel Benge" <stb### [at] hotmailcom> wrote:
> Right, didn't think of that. The poly_wave does not approximate the realistic
> angular dependence that well (it starts rising too quickly, makes the almost
> perpendicular regions too opaque), but I can just sample the curve by myself
> with more entries of the pigment_map (or just push 0.5 to something like 0.75).

Yeah, poly_wave isn't ideal for this purpose. Fine pigment_map entry
manipulation is a decent solution, although it would be nice if to have other
options available even for this (having only linear interpolation for map
entries can be frustrating at times).

> This will make the images so much better.
>
> Still, built-in method would be nice to have.

I agree.

Somebody needs to start a big wish list thread, for all those things we're dying
to have implemented in future versions :)

Sam


Post a reply to this message

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