Half thick foil interface law



Specular material with no bulk medium and a foil law with 0.1mm blue polymer medium

Interface law When modelling a sheet of dielectric material, such as flat glass, the Half thick foil interface law is an interesting alternative to modelling volumes and Thick foil interface law.

  • Volumic modelling consists in using two surfaces defining the sheet, one per side, with a real thickness in 3D. Then, a material with a bulk medium is applied to both faces. This method fully simulates refraction and allows different interface laws on each side, for instance when a coating is applied. However, it increases significantly simulation times.

  • The foil method allows modeling the sheet with a single 3D surface. Absorption and refraction is calculated internally in the interface law, and thus will not cause any ray deviation at macroscopic scale. This method allows very fast simulations, but neglects double reflections, and does not allow defining a custom interface law on either side for modelling a coating.

The half thick foil model computes the reflection and transmission of a fresnel interface followed by a given thickness of the associated medium, but does not account for the other interface. Modelling a sheet of dielectric with this law will account for double reflections and is not significantly slower than the single surface approach.

For instance, a 1mm polymer sheet can be modelled by two 3D surfaces with 1mm inbetween. On each surface, a specular material is applied with a half-foil interface law, the dielectric medium, and a thickness of 0.5mm each. The normal vectors must point outwards.

The polarization state of light is computed accurately by this law.


Using this feature requires an Advanced Edition license

Children Nodes

Dielectric function dielectricfunc

The foil dielectric function







The half-foil thickness in meters

Ocean XML 6.1 example

<intlaw type="halffoil" name="intlaw" thickness="0.0001">
     <dielectricfunc type="na" name="dielectricfunc">
             <spectrum type="uniform" name="n" value="1.5235"/>
             <spectrum type="rgb" name="a" rgb="5000 4000    2000" gamma="1"/>