mirror of
https://github.com/vonhyou/ray-tracer-comp371.git
synced 2025-06-08 15:31:59 +00:00
sync: try to impl intersection detection for rectangles
This commit is contained in:
parent
0006e3f0f4
commit
22a96dce29
1 changed files with 13 additions and 1 deletions
|
@ -13,4 +13,16 @@ bool Sphere::intersect(const Ray &r) const {
|
||||||
return b * b - 4 * a * c >= 0;
|
return b * b - 4 * a * c >= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Rectangle::intersect(const Ray &r) const { return false; }
|
bool Rectangle::intersect(const Ray &r) const {
|
||||||
|
Vector3f p1p2 = corners.col(1) - corners.col(0);
|
||||||
|
Vector3f p2p3 = corners.col(2) - corners.col(1);
|
||||||
|
Vector3f p3p1 = corners.col(0) - corners.col(2);
|
||||||
|
Vector3f p1p4 = corners.col(3) - corners.col(0);
|
||||||
|
Vector3f p4p3 = corners.col(2) - corners.col(3);
|
||||||
|
|
||||||
|
Vector3f n = -p1p2.cross(p2p3) / p1p2.cross(p2p3).norm();
|
||||||
|
|
||||||
|
if (n.dot(r.getOrigin() + r.getDirection()) == 0) {
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue