Skip to main content
GameDev.net gamedev.net
🔒 Locked 🎮 Unity

ray-plane collision

Started by sheep19 Dec 20, 2012 at 7:56 AM 0 replies 1.3k views
Original Post
sheep19
sheep19
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?
DDoS
DDoS
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

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.