Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2006-12-22 15:43:40 +0300
committerTon Roosendaal <ton@blender.org>2006-12-22 15:43:40 +0300
commit080ecf33c1fb13f88c51e2540cf531cce2d79c3c (patch)
treee03b73d30ea1fe0b468e90b20b2ed3d34f94421e /source
parentfcd3ea7875d3a8bde7dc642b7c45d5ba806c94e2 (diff)
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.
Diffstat (limited to 'source')
-rw-r--r--source/blender/render/intern/source/rendercore.c10
1 files 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<<R.osa)-1;
float *fcol= rl->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;