public override bool Hit(Ray ray, float t_min, float t_max, ref HitRecord rec) { HitRecord tempRec = new HitRecord(); var hitAnything = false; float closestSoFar = t_max; foreach (var hitable in List) { if (hitable.Hit(ray, t_min, closestSoFar, ref tempRec)) { hitAnything = true; closestSoFar = tempRec.T; rec = tempRec; } } return(hitAnything); }
public abstract bool Scatter(Ray rayIn, HitRecord rec, out Vector3 attenuation, out Ray scattered);
public abstract bool Hit(Ray ray, float t_min, float t_max, ref HitRecord rec);