17 __device__
bool hit(
const ray& r,
float min,
float max,
hit_record& rec)
const {
18 float a = r.direction.dot(r.direction);
19 float b = r.direction.dot(r.origin - center);
20 float c = (r.origin - center).dot(r.origin - center) - radius * radius;
21 float discriminant = b * b - a * c;
22 if (discriminant > 0) {
23 float t = (-b - sqrt(discriminant)) / a;
24 if (t > min&& t < max) {
26 rec.p = r.position(t);
27 rec.n = (rec.p - center) / radius;
31 t = (-b + sqrt(discriminant)) / a;
32 if (t > min&& t < max) {
34 rec.p = r.position(t);
35 rec.n = (rec.p - center) / radius;
Definition: material.h:11
Definition: hittable.h:15