예제 #1
0
        public bool Scatter(Ray rayIn, ref HitRecord rec, out color attenuation, out Ray scattered)
        {
            Vec3 reflect = RayTracer.Reflect(rayIn.Direction.unit_vector(), rec.normal);

            scattered   = new Ray(rec.p, reflect + roughness * RayTracer.RandomInUnitSphere());
            attenuation = albedo;
            return(Vec3.dot(scattered.Direction, rec.normal) > 0);
        }
예제 #2
0
        public bool Scatter(Ray rayIn, ref HitRecord rec, out color attenuation, out Ray scattered)
        {
            var scatter_direction = rec.normal + RayTracer.RandomInUnitSphere();

            scattered   = new Ray(rec.p, scatter_direction);
            attenuation = albedo;
            return(true);
        }