diff options
author | Ton Roosendaal <ton@blender.org> | 2004-05-10 01:52:23 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2004-05-10 01:52:23 +0400 |
commit | 023890061746ff1d87bdee975460eabe63f71c5f (patch) | |
tree | 15f795b3dbd636b979f766e9c8eb1d1d922771ac /source | |
parent | 6c7747a6f10b4d445df1920e9450d5ef6ca5101d (diff) |
Bug fix for AO and Soft shadow:
When Traceable was off, and the rendered pixel outside Octree, the
intersection was going wrong. Due to the many samples taken not easy
to see, but certainly causing extra noise.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/render/intern/source/ray.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/source/blender/render/intern/source/ray.c b/source/blender/render/intern/source/ray.c index 0264d298e3d..a1c64997664 100644 --- a/source/blender/render/intern/source/ray.c +++ b/source/blender/render/intern/source/ray.c @@ -2075,7 +2075,6 @@ void ray_ao(ShadeInput *shi, World *wrld, float *shadfac) float maxdist = wrld->aodist; int j=0, tot, actual=0; - VECCOPY(isec.start, shi->co); isec.vlrorig= shi->vlr; isec.mode= DDA_SHADOW; coh_test= 0; // reset coherence optimize @@ -2122,6 +2121,7 @@ void ray_ao(ShadeInput *shi, World *wrld, float *shadfac) actual++; + VECCOPY(isec.start, shi->co); isec.end[0] = shi->co[0] - maxdist*vec[0]; isec.end[1] = shi->co[1] - maxdist*vec[1]; isec.end[2] = shi->co[2] - maxdist*vec[2]; @@ -2264,7 +2264,6 @@ void ray_shadow(ShadeInput *shi, LampRen *lar, float *shadfac) float vec[3]; int a, j=0; - VECCOPY(isec.start, shi->co); isec.vlrorig= shi->vlr; fac= 0.0; @@ -2279,6 +2278,7 @@ void ray_shadow(ShadeInput *shi, LampRen *lar, float *shadfac) vec[2]= 0.0; Mat3MulVecfl(lar->mat, vec); + VECCOPY(isec.start, shi->co); isec.end[0]= lampco[0]+vec[0]; isec.end[1]= lampco[1]+vec[1]; isec.end[2]= lampco[2]+vec[2]; |