Exemplo n.º 1
0
        public Color GetIncidentColor(Vector3 v)
        {
            Vector3 length = Vector3.Subtract(Position, v);
            float   dist   = length.Length * length.Length;

            return(LightColor.Div(dist));
        }
Exemplo n.º 2
0
        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;
        }