[tiemann@localhost blender-2.43]$ diff -u source/blender/render/intern/source/shadeoutput.c~ source/blender/render/intern/source/shadeoutput.c --- source/blender/render/intern/source/shadeoutput.c~ 2007-02-14 09:36:39.000000000 -0500 +++ source/blender/render/intern/source/shadeoutput.c 2007-04-30 04:41:30.000000000 -0400 @@ -1033,7 +1033,8 @@ /* lampdistance and spot angle, writes in lv and dist */ float lamp_get_visibility(LampRen *lar, float *co, float *lv, float *dist) { - if(lar->type==LA_SUN || lar->type==LA_HEMI) { + /* Special case where HEMI lamp distance of less than one means "no falloff at all". */ + if(lar->type==LA_SUN || (lar->type==LA_HEMI && lar->dist < 1)) { *dist= 1.0f; VECCOPY(lv, lar->vec); return 1.0f; @@ -1054,6 +1055,10 @@ else visifac= 0.0f; } + else if (lar->type==LA_HEMI) { + /* Let HEMI lamps decay just like docs say they do. */ + visifac= (lar->dist/(lar->dist+dist[0])); + } else { if(lar->mode & LA_QUAD) { if(lar->ld1>0.0f) [tiemann@localhost blender-2.43]$