Она появилась, когда я добавил угасание интенсивности света: 1.0f/min(d*d, 0.00001f);
Я так же пытался пускать несколько лучей в один пиксель, но это не помогло:
Код
for (int i = 0; i < RPP; ++i)
{
for (int j = 0; j < RPP; ++j)
{
const float diff = 1.0f/RPP;
Vec3f direction = Vec3f(float(x) + float(i)*diff, float(y) + float(j)*diff, -1.0f) - center;
direction.normalize();
s += trace(center, direction);
}
}
s = s/(RPP*RPP);