From 425dc548347c414e3bd228793e7027f62e28d510 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sun, 14 May 2006 10:13:58 +0000 Subject: [PATCH] Bugfix #4036 Shadowbuffer "soft" option got totally messed up by a commit done 3 months ago. You could still get soft shadow, but the values to be used had to be scaled tenfold. Too bad this now will mean our movie DVD will not render with official cvs or release... I'll think over some patch to scale down 'soft' values in certain conditions. --- source/blender/render/intern/source/shadbuf.c | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/source/blender/render/intern/source/shadbuf.c b/source/blender/render/intern/source/shadbuf.c index 918f930ee78..ed561d14f06 100644 --- a/source/blender/render/intern/source/shadbuf.c +++ b/source/blender/render/intern/source/shadbuf.c @@ -478,20 +478,22 @@ float testshadowbuf(ShadBuf *shb, float *rco, float *dxco, float *dyco, float in } /* calculate filter size */ - VECCOPY(co, dxco); + co[0]= rco[0]+dxco[0]; + co[1]= rco[1]+dxco[1]; + co[2]= rco[2]+dxco[2]; co[3]= 1.0; - MTC_Mat4Mul3Vecfl(shb->persmat, co); + MTC_Mat4MulVec4fl(shb->persmat,co); /* rational hom co */ + dx[0]= xs1- siz*(1.0+co[0]/co[3]); + dx[1]= ys1- siz*(1.0+co[1]/co[3]); - dx[0]= co[0]/co[3]; - dx[1]= co[1]/co[3]; - - VECCOPY(co, dyco); + co[0]= rco[0]+dyco[0]; + co[1]= rco[1]+dyco[1]; + co[2]= rco[2]+dyco[2]; co[3]= 1.0; - MTC_Mat4Mul3Vecfl(shb->persmat, co); + MTC_Mat4MulVec4fl(shb->persmat,co); /* rational hom co */ + dy[0]= xs1- siz*(1.0+co[0]/co[3]); + dy[1]= ys1- siz*(1.0+co[1]/co[3]); - dy[0]= co[0]/co[3]; - dy[1]= co[1]/co[3]; - xres= fac*( fabs(dx[0])+fabs(dy[0]) ); yres= fac*( fabs(dx[1])+fabs(dy[1]) ); if(xres