Fix #35807: blender internal motion blur render without antialiasing would

give black speckles (self intersection errors) in raytraced shadows.

Motion blur does some extra offsets for free antialiasing in the motion blur
samples, but did not take them into account everywhere.
This commit is contained in:
Brecht Van Lommel 2013-06-20 11:47:09 +00:00
parent a384612cce
commit a92468c7d7
2 changed files with 8 additions and 0 deletions

@ -1416,6 +1416,10 @@ void shade_samples_fill_with_ps(ShadeSample *ssamp, PixStr *ps, int x, int y)
xs = (float)x + R.samples->centLut[b & 15] + 0.5f;
ys = (float)y + R.samples->centLut[b >> 4] + 0.5f;
}
else if (R.i.curblur) {
xs= (float)x + R.mblur_jit[R.i.curblur-1][0] + 0.5f;
ys= (float)y + R.mblur_jit[R.i.curblur-1][1] + 0.5f;
}
else {
xs = (float)x + 0.5f;
ys = (float)y + 0.5f;

@ -3824,6 +3824,10 @@ static void shade_tra_samples_fill(ShadeSample *ssamp, int x, int y, int z, int
xs= (float)x + R.samples->centLut[b & 15] + 0.5f;
ys= (float)y + R.samples->centLut[b>>4] + 0.5f;
}
else if (R.i.curblur) {
xs= (float)x + R.mblur_jit[R.i.curblur-1][0] + 0.5f;
ys= (float)y + R.mblur_jit[R.i.curblur-1][1] + 0.5f;
}
else {
xs= (float)x + 0.5f;
ys= (float)y + 0.5f;