public Color GetIncidentColor(Vector3 v) { Vector3 length = Vector3.Subtract(Position, v); float dist = length.Length * length.Length; return(LightColor.Div(dist)); }
public void Sample(HitRecord record, LightSample sample) { Vector3 wi = new Vector3(Position); wi -= record.IntersectionPoint; wi.Normalize(); Vector3 dist = Vector3.Subtract(Position, record.IntersectionPoint); float ldist = dist.Length; sample.LightColor = LightColor.Div(ldist * ldist); sample.Wi = wi; sample.Distance = ldist; sample.Position = Position; sample.Pdf = 1; }