public Vector3D shadeDividedRho(Collision collision) { var hemiSampler = hemiSamplerFactory.makeSampler(); Vector3D wi = SamplerUtil.sampleWi(collision.normal, hemiSampler, randomFactory); Vector3D li = tracer.traceRay(new Ray(collision.point, wi), lightFilter); return(MathUtil.multiply(colorDiffuse, li)); }
public Tracer(Construction construction, IMaterial ambient, IRandomFactory randomFactory, IHemispherecalSamplerFactory samplerFactory, double maxRadiance) { this.construction = construction; this.ambient = ambient; this.randomFactory = randomFactory; this.sampler = samplerFactory.makeSampler(); this.maxRadiance = maxRadiance; this.DEFAULT_FILTER = (t) => false; }