solstice

Compute collected power and efficiencies of a solar plant
git clone git://git.meso-star.com/solstice.git
Log | Files | Refs | README | LICENSE

commit 04fc04a8f336416b5dfbe62239be7b67879c774f
parent b823c1b1a83bbf3b476e3d7b76f641b2896b1607
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Thu,  6 Apr 2017 11:09:19 +0200

Handle the SSOL shader API updates

Diffstat:
Msrc/solstice_material.c | 50+++++++++++++++-----------------------------------
1 file changed, 15 insertions(+), 35 deletions(-)

diff --git a/src/solstice_material.c b/src/solstice_material.c @@ -38,17 +38,13 @@ mtl_get_normal (struct ssol_device* dev, struct ssol_param_buffer* buf, const double wavelength, - const double P[3], - const double Ng[3], - const double Ns[3], - const double uv[2], - const double w[3], + const struct ssol_surface_fragment* frag, double* val) { - (void)dev, (void)buf, (void)wavelength, (void)P, (void)Ng, (void)uv, (void)w; - val[0] = Ns[0]; - val[1] = Ns[1]; - val[2] = Ns[2]; + (void)dev, (void)buf, (void)wavelength; + val[0] = frag->Ns[0]; + val[1] = frag->Ns[1]; + val[2] = frag->Ns[2]; } static void @@ -56,15 +52,11 @@ matte_get_reflectivity (struct ssol_device* dev, struct ssol_param_buffer* buf, const double wavelength, - const double P[3], - const double Ng[3], - const double Ns[3], - const double uv[2], - const double w[3], + const struct ssol_surface_fragment* frag, double* val) { const struct matte_param* param = ssol_param_buffer_get(buf); - (void)dev, (void)wavelength, (void)P, (void)Ng, (void)Ns, (void)uv, (void)w; + (void)dev, (void)wavelength, (void)frag; *val = param->reflectivity; } @@ -73,21 +65,17 @@ matte_get_normal (struct ssol_device* dev, struct ssol_param_buffer* buf, const double wavelength, - const double P[3], - const double Ng[3], - const double Ns[3], - const double uv[2], - const double w[3], + const struct ssol_surface_fragment* frag, double* val) { double basis[9]; double N[3]; const struct matte_param* param = ssol_param_buffer_get(buf); - (void)dev, (void)wavelength, (void)P, (void)Ng, (void)Ns, (void)uv, (void)w; + (void)dev, (void)wavelength; SSOL(image_sample(param->normal_map, SSOL_FILTER_NEAREST, - SSOL_ADDRESS_CLAMP, SSOL_ADDRESS_CLAMP, uv, N)); + SSOL_ADDRESS_CLAMP, SSOL_ADDRESS_CLAMP, frag->uv, N)); - d33_basis(basis, Ns); + d33_basis(basis, frag->Ns); d3_subd(N, d3_muld(N, N, 2), 1); d33_muld3(N, basis, N); d3_normalize(val, N); @@ -98,15 +86,11 @@ mirror_get_reflectivity (struct ssol_device* dev, struct ssol_param_buffer* buf, const double wavelength, - const double P[3], - const double Ng[3], - const double Ns[3], - const double uv[2], - const double w[3], + const struct ssol_surface_fragment* frag, double* val) { const struct mirror_param* param = ssol_param_buffer_get(buf); - (void)dev, (void)wavelength, (void)P, (void)Ng, (void)Ns, (void)uv, (void)w; + (void)dev, (void)wavelength, (void)frag; *val = param->reflectivity; } @@ -115,15 +99,11 @@ mirror_get_roughness (struct ssol_device* dev, struct ssol_param_buffer* buf, const double wavelength, - const double P[3], - const double Ng[3], - const double Ns[3], - const double uv[2], - const double w[3], + const struct ssol_surface_fragment* frag, double* val) { const struct mirror_param* param = ssol_param_buffer_get(buf); - (void)dev, (void)wavelength, (void)P, (void)Ng, (void)Ns, (void)uv, (void)w; + (void)dev, (void)wavelength, (void)frag; *val = param->roughness; }