solstice-solver

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

commit c268521dad790dc95322f2af134f415a106687fa
parent e8f8b8d17f46e9a9caba039408d92c729112287f
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Wed, 24 May 2017 12:11:12 +0200

Rename the medium absorptivity in absorption

Diffstat:
Msrc/ssol.h | 6+++---
Msrc/ssol_draw_pt.c | 8++++----
Msrc/ssol_material.c | 20++++++++++----------
Msrc/ssol_material_c.h | 2+-
Msrc/ssol_solver.c | 10+++++-----
Msrc/test_ssol_material.c | 14+++++++-------
6 files changed, 30 insertions(+), 30 deletions(-)

diff --git a/src/ssol.h b/src/ssol.h @@ -258,7 +258,7 @@ struct ssol_data { static const struct ssol_data SSOL_DATA_NULL = SSOL_DATA_NULL__; struct ssol_medium { - struct ssol_data absorptivity; + struct ssol_data absorption; struct ssol_data refractive_index; }; #define SSOL_MEDIUM_VACUUM__ {{SSOL_DATA_REAL, {0}}, {SSOL_DATA_REAL, {1}}} @@ -1237,7 +1237,7 @@ static FINLINE struct ssol_medium* ssol_medium_clear(struct ssol_medium* medium) { ASSERT(medium); - ssol_data_clear(&medium->absorptivity); + ssol_data_clear(&medium->absorption); ssol_data_clear(&medium->refractive_index); return medium; } @@ -1246,7 +1246,7 @@ static FINLINE struct ssol_medium* ssol_medium_copy(struct ssol_medium* dst, const struct ssol_medium* src) { ASSERT(dst && src); - ssol_data_copy(&dst->absorptivity, &src->absorptivity); + ssol_data_copy(&dst->absorption, &src->absorption); ssol_data_copy(&dst->refractive_index, &src->refractive_index); return dst; } diff --git a/src/ssol_draw_pt.c b/src/ssol_draw_pt.c @@ -172,13 +172,13 @@ Li(struct ssol_scene* scn, wl = ranst_sun_wl_get(ctx->ran_wl, ctx->rng); for(;;) { - double absorptivity; + double absorption; S3D(scene_view_trace_ray (view, ray_org, ray_dir, ray_range, &ray_data, &hit)); - absorptivity = ssol_data_get_value(&medium.absorptivity, wl); - if(absorptivity > 0) { - throughput *= exp(-absorptivity * hit.distance); + absorption = ssol_data_get_value(&medium.absorption, wl); + if(absorption > 0) { + throughput *= exp(-absorption * hit.distance); } if(S3D_HIT_NONE(&hit)) { /* Background lighting */ diff --git a/src/ssol_material.c b/src/ssol_material.c @@ -212,7 +212,7 @@ setup_thin_dielectric_bsdf { struct ssf_bxdf* bxdf = NULL; double thickness; - double absorptivity; + double absorption; double eta_i; double eta_t; res_T res = RES_OK; @@ -223,8 +223,8 @@ setup_thin_dielectric_bsdf eta_i = ssol_data_get_value(&mtl->out_medium.refractive_index, wavelength); eta_t = ssol_data_get_value (&mtl->data.thin_dielectric.slab_medium.refractive_index, wavelength); - absorptivity = ssol_data_get_value - (&mtl->data.thin_dielectric.slab_medium.absorptivity, wavelength); + absorption = ssol_data_get_value + (&mtl->data.thin_dielectric.slab_medium.absorption, wavelength); thickness = mtl->data.thin_dielectric.thickness; /* Setup the BxDF */ @@ -232,7 +232,7 @@ setup_thin_dielectric_bsdf (mtl->dev->allocator, &ssf_thin_specular_dielectric, &bxdf); if(res != RES_OK) goto error; res = ssf_thin_specular_dielectric_setup - (bxdf, absorptivity, eta_i, eta_t, thickness); + (bxdf, absorption, eta_i, eta_t, thickness); if(res != RES_OK) goto error; /* Setup the BSDF */ @@ -280,21 +280,21 @@ check_medium(const struct ssol_medium* medium) { if(!medium) return 0; - /* Check absorptivity in [0, INF) */ - switch(medium->absorptivity.type) { + /* Check absorption in [0, INF) */ + switch(medium->absorption.type) { case SSOL_DATA_REAL: - if(medium->absorptivity.value.real < 0) + if(medium->absorption.value.real < 0) return 0; break; case SSOL_DATA_SPECTRUM: - if(!medium->absorptivity.value.spectrum - || !spectrum_check_data(medium->absorptivity.value.spectrum, 0, DBL_MAX)) + if(!medium->absorption.value.spectrum + || !spectrum_check_data(medium->absorption.value.spectrum, 0, DBL_MAX)) return 0; break; default: FATAL("Unreachable code\n"); break; } - /* Check absorptivity in ]0, INF) */ + /* Check refractive index in ]0, INF) */ switch(medium->refractive_index.type) { case SSOL_DATA_REAL: if(medium->refractive_index.value.real <= 0) diff --git a/src/ssol_material_c.h b/src/ssol_material_c.h @@ -25,7 +25,7 @@ struct ssol_device; #define MEDIA_EQ(A, B) \ ( ssol_data_eq(&((A)->refractive_index), &((B)->refractive_index)) \ - && ssol_data_eq(&((A)->absorptivity), &((B)->absorptivity))) + && ssol_data_eq(&((A)->absorption), &((B)->absorption))) struct dielectric { int dummy; diff --git a/src/ssol_solver.c b/src/ssol_solver.c @@ -776,7 +776,7 @@ trace_radiative_path struct ssol_medium medium = SSOL_MEDIUM_VACUUM; if(scn->atmosphere) { /* Assume that the path starts from an uniform atmosphere */ - ssol_data_set_real(&medium.absorptivity, + ssol_data_set_real(&medium.absorption, atmosphere_get_absorption(scn->atmosphere, pt.wl)); } /* Setup the ray as if it starts from the current point position in order @@ -788,7 +788,7 @@ trace_radiative_path for(;;) { /* Here we go for the radiative random walk */ struct ray_data ray_data = RAY_DATA_NULL; struct ssol_material* mtl; - double absorptivity; + double absorption; /* Compute interaction with material */ mtl = point_get_material(&pt); @@ -848,9 +848,9 @@ trace_radiative_path depth += mtl->type != SSOL_MATERIAL_VIRTUAL; /* Take into account the medium attenuation */ - absorptivity = ssol_data_get_value(&medium.absorptivity, pt.wl); - if(absorptivity > 0 && hit.distance > 0) { - const double transmissivity = exp(-absorptivity * hit.distance); + absorption = ssol_data_get_value(&medium.absorption, pt.wl); + if(absorption > 0 && hit.distance > 0) { + const double transmissivity = exp(-absorption * hit.distance); ASSERT(0 < transmissivity && transmissivity <= 1); pt.absorptivity_loss += (1 - transmissivity) * pt.weight; pt.weight *= transmissivity; diff --git a/src/test_ssol_material.c b/src/test_ssol_material.c @@ -162,17 +162,17 @@ test_thin_dielectric(struct ssol_device* dev) CHECK(ssol_thin_dielectric_setup(mtl, &shader, &mdm0, &mdm1, 1), RES_BAD_ARG); shader.normal = get_shader_normal; - ssol_data_set_real(&mdm0.absorptivity, -1); + ssol_data_set_real(&mdm0.absorption, -1); CHECK(ssol_thin_dielectric_setup(mtl, &shader, &mdm0, &mdm1, 1), RES_BAD_ARG); - ssol_data_copy(&mdm0.absorptivity, &SSOL_MEDIUM_VACUUM.absorptivity); + ssol_data_copy(&mdm0.absorption, &SSOL_MEDIUM_VACUUM.absorption); ssol_data_set_real(&mdm0.refractive_index, 0); CHECK(ssol_thin_dielectric_setup(mtl, &shader, &mdm0, &mdm1, 1), RES_BAD_ARG); ssol_data_copy(&mdm0.refractive_index, &SSOL_MEDIUM_VACUUM.refractive_index); - ssol_data_set_real(&mdm1.absorptivity, -1); + ssol_data_set_real(&mdm1.absorption, -1); CHECK(ssol_thin_dielectric_setup(mtl, &shader, &mdm0, &mdm1, 1), RES_BAD_ARG); - ssol_data_copy(&mdm1.absorptivity, &SSOL_MEDIUM_VACUUM.absorptivity); + ssol_data_copy(&mdm1.absorption, &SSOL_MEDIUM_VACUUM.absorption); ssol_data_set_real(&mdm1.refractive_index, 0); CHECK(ssol_thin_dielectric_setup(mtl, &shader, &mdm0, &mdm1, 1), RES_BAD_ARG); @@ -229,11 +229,11 @@ test_dielectric(struct ssol_device* dev) CHECK(ssol_dielectric_setup(NULL, &dielectric, &mdm0, &mdm1), RES_BAD_ARG); ssol_data_copy(&mdm1.refractive_index, &SSOL_MEDIUM_VACUUM.refractive_index); - ssol_data_set_real(&mdm0.absorptivity, -1); + ssol_data_set_real(&mdm0.absorption, -1); CHECK(ssol_dielectric_setup(NULL, &dielectric, &mdm0, &mdm1), RES_BAD_ARG); - ssol_data_copy(&mdm0.absorptivity, &SSOL_MEDIUM_VACUUM.refractive_index); + ssol_data_copy(&mdm0.absorption, &SSOL_MEDIUM_VACUUM.refractive_index); - ssol_data_set_real(&mdm1.absorptivity, -1); + ssol_data_set_real(&mdm1.absorption, -1); CHECK(ssol_dielectric_setup(NULL, &dielectric, &mdm0, &mdm1), RES_BAD_ARG); ssol_data_copy(&mdm1.refractive_index, &SSOL_MEDIUM_VACUUM.refractive_index);