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.
This commit is contained in:
@@ -913,11 +913,17 @@ void zbufshadeDA_tile(RenderPart *pa)
|
|||||||
|
|
||||||
if(ztramask && solidmask) {
|
if(ztramask && solidmask) {
|
||||||
unsigned short *sps= solidmask, *spz= ztramask;
|
unsigned short *sps= solidmask, *spz= ztramask;
|
||||||
|
unsigned short fullmask= (1<<R.osa)-1;
|
||||||
float *fcol= rl->rectf; float *acol= rl->acolrect;
|
float *fcol= rl->rectf; float *acol= rl->acolrect;
|
||||||
int x;
|
int x;
|
||||||
for(x=pa->rectx*pa->recty; x>0; x--, acol+=4, fcol+=4, 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);
|
addAlphaOverFloatMask(fcol, acol, *sps, *spz);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
float *fcol= rl->rectf; float *acol= rl->acolrect;
|
float *fcol= rl->rectf; float *acol= rl->acolrect;
|
||||||
int x;
|
int x;
|
||||||
|
|||||||
Reference in New Issue
Block a user