ray-plane collision

Started by
0 comments, last by DDoS 11 years, 4 months ago
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?
Advertisement
yes this is correct, since dot product is distributive you can write t = dot(a-e.n) / dot(d,n)

ddos

edit: http://en.wikipedia.org/wiki/Line-plane_intersection -> Algebraic form

This topic is closed to new replies.

Advertisement