public (Vec3 color, Ray ray) Scatter(Ray rIn, HitRecord hitRec) { var scatteredDirection = hitRec.N + MathR.RandomUnitVector(); var scatterRay = new Ray(hitRec.P, scatteredDirection); return(Color, scatterRay); }
public (Vec3 color, Ray ray) Scatter(Ray rIn, HitRecord hitRec) { var reflect = rIn.Direction.Reflect(hitRec.N); var scatteredDirection = reflect + (MathR.RandomUnitVector() * Fuzz); if (scatteredDirection.Dot(hitRec.N) > 0) { var scatterRay = new Ray(hitRec.P, scatteredDirection); return(Color, scatterRay); } return(default);