* @see ca.eandb.jmist.framework.Shader#shade(ca.eandb.jmist.framework.ShadingContext)
*/
public Color shade(ShadingContext sc) {
if (firstBounceRays > 0 && sc.getPathDepth() < 1) {
Random sampler = firstBounceSampler.get();
WavelengthPacket lambda = sc.getWavelengthPacket();
Color shade = sc.getColorModel().getBlack(lambda);
for (int i = 0; i < firstBounceRays; i++) {
ScatteredRay ray = sc.getMaterial().scatter(sc, sc.getIncident(), true, sc.getWavelengthPacket(), sampler.next(), sampler.next(), sampler.next());
if (ray != null) {
shade = shade.plus(sc.castRay(ray).times(ray.getColor()));
}
}
return shade.divide(firstBounceRays);