X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fmaterials%2Flight.cpp;h=2825b81eaa745f70b9d5aa4ed6009e499c4dce5c;hp=d84be2ac8dcc1a8542212df87c6f8063aebbaed2;hb=a266f0f915827b20591f6244ccc36129e844f408;hpb=a6923e6315d5b91a0641dfcde653a897e8afeb1f diff --git a/source/materials/light.cpp b/source/materials/light.cpp index d84be2ac..2825b81e 100644 --- a/source/materials/light.cpp +++ b/source/materials/light.cpp @@ -12,6 +12,7 @@ namespace GL { Light::Light(): color(1), + transmittance(1), position(0, 0, 1, 0), spot_dir(0, 0, -1), spot_exp(0), @@ -44,6 +45,11 @@ void Light::set_color(const Color &c) color = c; } +void Light::set_transmittance(const Color &t) +{ + transmittance = t; +} + void Light::set_matrix(const Matrix &m) { Placeable::set_matrix(m); @@ -101,7 +107,7 @@ void Light::update_shader_data(ProgramData &shdata, const Matrix &view_matrix, u { string base = format("light_sources[%d]", i); shdata.uniform(base+".position", view_matrix*position); - shdata.uniform(base+".color", color.r, color.g, color.b); + shdata.uniform(base+".color", color.r*transmittance.r, color.g*transmittance.g, color.b*transmittance.b); }