public override Vector3 Area_Light_Shade(ShadeRec sr)
        {
            Vector3 L             = (base.Area_Light_Shade(sr));
            Vector3 wo            = (-sr.Ray.Direction);
            Vector3 wi            = Vector3.Zero();
            float   pdf           = 0;
            Vector3 fr            = (glossy_specular.Sample_F(sr, wo, ref wi, ref pdf));
            Ray     reflected_ray = new Ray(sr.HitPoint, wi);

            L += fr * sr.World.Tracer.TraceRay(reflected_ray, sr.Depth + 1) * (Vector3.Dot(sr.Normal, wi)) / pdf;
            return(L);
        }