X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fshadowmap.cpp;h=6f62870be5c73b7f8a5420ac72851f3b05ae4676;hb=bd141418a0712feeb64bcaff7f57e29913b0317b;hp=ad40442f8e911fd0bd908c4d81b39a028a5bbbd9;hpb=f657e545d461948f9d014d65c7546b26671f2828;p=libs%2Fgl.git diff --git a/source/shadowmap.cpp b/source/shadowmap.cpp index ad40442f..6f62870b 100644 --- a/source/shadowmap.cpp +++ b/source/shadowmap.cpp @@ -74,6 +74,7 @@ void ShadowMap::setup_frame() const rendered = true; Vector4 lpos = light.get_position(); + if(lpos.w) { /* XXX Not really proper way to support positional lights, but good @@ -81,12 +82,13 @@ void ShadowMap::setup_frame() const lpos.x -= target.x; lpos.y -= target.y; lpos.z -= target.z; - float d = sqrt(lpos.x*lpos.x+lpos.y*lpos.y+lpos.z*lpos.z); - lpos.x /= d; - lpos.y /= d; - lpos.z /= d; } + float l = sqrt(lpos.x*lpos.x+lpos.y*lpos.y+lpos.z*lpos.z); + lpos.x /= l; + lpos.y /= l; + lpos.z /= l; + float matrix[16]; if(abs(lpos.z)>=abs(lpos.x) && abs(lpos.z)>=abs(lpos.y)) {