From 080ecf33c1fb13f88c51e2540cf531cce2d79c3c Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Fri, 22 Dec 2006 12:43:40 +0000 Subject: [PATCH] Bugfix #5491 Ztransp Mask issue: now I did all this work to solve the exceptions, but forgot the most simple case: regular alpha-over :) This solves for example AA issues in ztransp-hair over solid faces. --- source/blender/render/intern/source/rendercore.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index e6ace571156..4efa8bcc844 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -913,10 +913,16 @@ void zbufshadeDA_tile(RenderPart *pa) if(ztramask && solidmask) { unsigned short *sps= solidmask, *spz= ztramask; + unsigned short fullmask= (1<rectf; float *acol= rl->acolrect; int x; - for(x=pa->rectx*pa->recty; x>0; x--, acol+=4, fcol+=4, sps++, spz++) - addAlphaOverFloatMask(fcol, acol, *sps, *spz); + + for(x=pa->rectx*pa->recty; x>0; x--, acol+=4, fcol+=4, sps++, spz++) { + if(*sps == fullmask) + addAlphaOverFloat(fcol, acol); + else + addAlphaOverFloatMask(fcol, acol, *sps, *spz); + } } else { float *fcol= rl->rectf; float *acol= rl->acolrect;