Ideale Spiegelreflexion ist wie ein perfekter Spiegel. Ich schaue mir den Code für SmallPt an und sehe, dass eine der Kugeln ein ideales Spiegelmaterial hat:
Sphere spheres[] = {//Scene: radius, position, emission, color, material
/ ...
Sphere(16.5,Vec(27,16.5,47), Vec(),Vec(1,1,1)*.999, SPEC),//Mirr
/ ...
};
Bei der Strahlungsberechnung geschieht Folgendes:
} else if (obj.refl == SPEC) // Ideal SPECULAR reflection
return obj.e + f.mult(radiance(Ray(x,r.d-n*2*n.dot(r.d)),depth,Xi));
wo f
ist die Objektfarbe von Vec(.999,.999,.999)
.
Ich war überrascht, hier eine Farbvervielfachung zu sehen. Hat ein idealer Spiegel keine Farbe? Ich denke wie es f
ist Vec(.999,.999,.999)
, effektiv geht es durch die Farbe fast unverändert? Irgendwelche Gedanken darüber, warum .999 verwendet wurde und nicht 1? Ich vermute, das ist etwas, um einen winzigen Energieverlust zu modellieren?