solstice-solver

Solver library of the solstice app
git clone git://git.meso-star.com/solstice-solver.git
Log | Files | Refs | README | LICENSE

commit d60d114cac6ea8f9af822d22c5955c9bc1a26217
parent 111e1ead7b0087345dca2318f07db856bb5408b6
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Thu,  2 Mar 2017 14:00:09 +0100

Rename the transmissivity of the thin_dielectric in absorption

Diffstat:
Msrc/ssol.h | 2+-
Msrc/ssol_material.c | 9+++++----
Msrc/test_ssol_material.c | 6+++---
Msrc/test_ssol_materials.h | 4++--
4 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/src/ssol.h b/src/ssol.h @@ -238,7 +238,7 @@ static const struct ssol_matte_shader SSOL_MATTE_SHADER_NULL = /* Thin dielectric shader */ struct ssol_thin_dielectric_shader { ssol_shader_getter_T normal; - ssol_shader_getter_T transmissivity; + ssol_shader_getter_T absorption; ssol_shader_getter_T thickness; ssol_shader_getter_T refractive_index; }; diff --git a/src/ssol_material.c b/src/ssol_material.c @@ -151,7 +151,7 @@ thin_dielectric_shade const struct ssol_thin_dielectric_shader* shader; double N[3]; double thickness; - double T; + double absorption; const double eta_i = 1.0002772; /* Refractive index of the air */ double eta_t; res_T res = RES_OK; @@ -166,7 +166,7 @@ thin_dielectric_shade fragment->Ng, fragment->Ns, fragment->uv, fragment->dir, Dst) FETCH(normal, N); FETCH(thickness, &thickness); - FETCH(transmissivity, &T); + FETCH(absorption, &absorption); FETCH(refractive_index, &eta_t); #undef FETCH @@ -174,7 +174,8 @@ thin_dielectric_shade res = ssf_bxdf_create (mtl->dev->allocator, &ssf_thin_specular_dielectric, &bxdf); if(res != RES_OK) goto error; - res = ssf_thin_specular_dielectric_setup(bxdf, T, eta_i, eta_t, thickness); + res = ssf_thin_specular_dielectric_setup + (bxdf, absorption, eta_i, eta_t, thickness); if(res != RES_OK) goto error; /* Setup the BSDF */ @@ -210,7 +211,7 @@ check_shader_thin_differential(const struct ssol_thin_dielectric_shader* shader) { return shader && shader->normal - && shader->transmissivity + && shader->absorption && shader->thickness && shader->refractive_index; } diff --git a/src/test_ssol_material.c b/src/test_ssol_material.c @@ -122,7 +122,7 @@ test_thin_dielectric(struct ssol_device* dev) CHECK(type, SSOL_MATERIAL_THIN_DIELECTRIC); thin_dielectric.normal = get_shader_normal; - thin_dielectric.transmissivity = get_shader_transmissivity; + thin_dielectric.absorption = get_shader_absorption; thin_dielectric.thickness = get_shader_thickness; thin_dielectric.refractive_index = get_shader_refractive_index; @@ -135,9 +135,9 @@ test_thin_dielectric(struct ssol_device* dev) CHECK(ssol_thin_dielectric_set_shader(material, &thin_dielectric), RES_BAD_ARG); thin_dielectric.normal = get_shader_normal; - thin_dielectric.transmissivity = NULL; + thin_dielectric.absorption = NULL; CHECK(ssol_thin_dielectric_set_shader(material, &thin_dielectric), RES_BAD_ARG); - thin_dielectric.transmissivity = get_shader_transmissivity; + thin_dielectric.absorption = get_shader_absorption; thin_dielectric.thickness = NULL; CHECK(ssol_thin_dielectric_set_shader(material, &thin_dielectric), RES_BAD_ARG); diff --git a/src/test_ssol_materials.h b/src/test_ssol_materials.h @@ -91,7 +91,7 @@ get_shader_roughness } static INLINE void -get_shader_transmissivity +get_shader_absorption (struct ssol_device* dev, struct ssol_param_buffer* buf, const double wavelength, @@ -104,7 +104,7 @@ get_shader_transmissivity { (void)dev, (void)buf, (void)wavelength; (void)P, (void)Ng, (void)Ns, (void)uv, (void) w; - *val = 1; + *val = 0; } static INLINE void