Thanks for your response.

You’re right, I’ve made a few typos in my post. Thought the error is in R rather than in T. I’ve put my round brackets in the wrong place. It should read

R = r * (1 + (1 – r)² * t² / (1 – r² * t²))

instead of

R = r * (1 + (1 – r)² * t²) / (1 – r² * t²)

Also, you’ve correctly pointed out that it is

t = pow(transparency, 1 / cos_t)

rather than

t = pow(transparency, cos_t)

I’ve corrected both in the original post. Thanks for pointing them out!

]]>The correct version for the transmittance is

T = (1 – r)² * t / (1 – r² * t²),

so that’s equivalent to your approach. ]]>

Regarding the thin plate formula: Isn’t the Radiance formula different, even when setting F_TE = F_TM = r? Then the formula in http://radsite.lbl.gov/radiance/refer/materials.pdf simplifies to

T = (1 – r)² / (1 – r² * t²),

R = r * (1 + (1 – 2*r) * t²) / (1 – r² * t²),

whereas you propose

T = (1 – r)² * t / (1 – r² * t²),

R = r * (1 + (1 – r)² * t²) / (1 – r² * t²)

= r * (1 + (1 – 2*r + r²) * t²) / (1 – r² * t²).

And probably you meant

t = pow(transparency, 1 / cos_t)

as in your post on flipcode.

The derivation is actually very simply. On a piece of paper, you draw a pane of glass with two interfaces, an incident light ray that reflects a first time on the surface and also enters the pane. There, it bounces an “infinite” times between both interfaces, each time transmitting some energy through the interface. You get an infinite number of rays leaving the pane on the incident side, and also an infinite number leaving on the opposite side. For each of them, you calculate the fraction of the incident energy attributed to it. Finally, for each side, you lump together all contributions and thanks to some nice mathematical properties, you can simplify it to the formulas above.

The trick used is of course that all the rays leaving the pane *appear* to originate in the same point, but of course they do not really so. If you can make the same approximation, then yes, you would be able to produce such a material. But somehow, I suspect it won’t be entirely so.

Bramz

]]>I’ve thought about doing something along similiar lines for objects like paper lampshades. They’re very thin but scatter light so much that you need full volumetric multiple-scattering to simulate them – super slow! But there’s probably a way to produce a material like this, but based on diffuse reflection and transmission instead of specular, which could approximate the paper translucency effect.

]]>