public override bool Scatter(Ray r, HitRecord rec, out Vec3f attenuation, out Ray Scattered, Random drand) { Vec3f reflected = Vec3f.Reflect(r.Direction.GetNormal(), rec.Normal); Scattered = new Ray(rec.Point, reflected + Fuzz * RayTrace1.RandomInUnitSphere(drand)); attenuation = Albedo; return(Vec3f.Dot(Scattered.Direction, rec.Normal) > 0); }
public override bool Scatter(Ray r, HitRecord rec, out Vec3f attenuation, out Ray Scattered, Random drand) { Vec3f target = rec.Point + rec.Normal + RayTrace1.RandomInUnitSphere(drand); Scattered = new Ray(rec.Point, target - rec.Point); attenuation = Albedo; return(true); }