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:
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