Hi, I want to make my raytracer able to trace triangles, not only spheres as it currently does.
So I must first check if the ray hits the plane.
Leaving aside the triangle for now,
I have:
Vector3 a = {0, 0, 0}; // a point of the plane
Vector3 n = {0, 1, 0}; // the plane's normal
n.normalize();
Vector3 e = {0, -1, 0}; // the starting point of the ray
Vector3 d = {0, 1.0f, 0}; // the ray's direction
d.normalize();
float t = (dot(a, n) - dot(e, n)) / dot(d, n);
So, the collision point would be e + t * d.
Also, if dot(d, n) = 0, the ray and the plane are parallel.
Is that correct?
Popular Topics
Advertisement