public bool Scatter(Ray rayIn, ref HitRecord rec, out color attenuation, out Ray scattered) { Vec3 reflect = RayTracer.Reflect(rayIn.Direction.unit_vector(), rec.normal); scattered = new Ray(rec.p, reflect + roughness * RayTracer.RandomInUnitSphere()); attenuation = albedo; return(Vec3.dot(scattered.Direction, rec.normal) > 0); }
public bool Scatter(Ray rayIn, ref HitRecord rec, out color attenuation, out Ray scattered) { var scatter_direction = rec.normal + RayTracer.RandomInUnitSphere(); scattered = new Ray(rec.p, scatter_direction); attenuation = albedo; return(true); }