X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fshadowmap.cpp;h=bc46f2c1b298827738a9db5c6d5140c1362edb50;hp=372fa1130c6ccf8836992b154cbb3ea9dbb31f95;hb=50a0c7fd661fe6bfa3f929ad66e47cfab4a0fb87;hpb=d147aa8f56e6a60d80f628ffeedf16bc99b588d3 diff --git a/source/shadowmap.cpp b/source/shadowmap.cpp index 372fa113..bc46f2c1 100644 --- a/source/shadowmap.cpp +++ b/source/shadowmap.cpp @@ -70,10 +70,10 @@ void ShadowMap::setup_frame() const { /* XXX Not really proper way to support positional lights, but good enough when the light source is far away */ - back = Vector3(lpos)-target; + back = lpos.slice<3>(0)-target; } else - back = Vector3(lpos); + back = lpos.slice<3>(0); back.normalize(); Vector3 up; @@ -85,10 +85,10 @@ void ShadowMap::setup_frame() const Vector3 right = normalize(cross(up, back)); Vector4 columns[4]; - columns[0] = Vector4(right, 0.0f); - columns[1] = Vector4(normalize(cross(back, right)), 0.0f); - columns[2] = Vector4(back, 0.0f); - columns[3] = Vector4(target, 1.0f); + columns[0] = compose(right, 0.0f); + columns[1] = compose(normalize(cross(back, right)), 0.0f); + columns[2] = compose(back, 0.0f); + columns[3] = compose(target, 1.0f); light_matrix = Matrix::from_columns(columns); view_matrix = invert(light_matrix);