...
Consider the following simplified "glass" shader and compare it to the "glass" shader distributed with OSL:
| 3Delight | Other Systems |
|---|
| Code Block |
|---|
surface glass
[[ string help = "Simple dielectric material" ]]
(
float Ks = 1,
color Cs = 1,
float eta = 1.5
)
{
Ci = Ks * reflection(N, eta) + Cs * refraction(N, eta);
} |
| | Code Block |
|---|
surface glass
[[ string help = "Simple dielectric material" ]]
(
float Ks = 1,
color Cs = 1,
float eta = 1.5
)
{
float _eta = backfacing() ? 1/eta : eta;
Ci = Ks * reflection(N, _eta) + Cs * refraction(N, _eta);
} |
|
...
As you can see, there are no fresnel terms and no backfacing() call. 3Delight will take the proper decision, based on many factors including the fresnel factors, to properly sample the surface.
...