Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I would like to clip a triangle if its bounds lie partially out of a cube for this I guess I would need some kind of Triangle Plane intersection code, I'm not well versed with math but I do have the points of the triangle in 3d space (P1, P2, P3).

How do I get the 2 points of intersection of the triangle with one of the planes of the cube?

share|improve this question
Is your triangle a surface? In which case, you may have a line of intersection between two planes. – f20k Feb 8 '11 at 22:25
up vote 3 down vote accepted

If cube is axis-aligned, then it's easy.

You can compare each vertex of triangle with each face (plane) of cube. If it's out of cube (just compare apropriate coordinates), then find two new points, which lie on line connecting two other vertices with that one out of cube and which lie on plane (their coordinate is same as the plane). This is common linear interpolation. So I think you would handle it.

But you should be aware of case, which is on picture. Everytime choose point, which is closer to vertex, which is not out of cube (inner vertex). Choose green point, not red (which is closer to vertex out of cube). triangle plane intersection

Well. And if cube is not axis-aligned, you can look here:

There is intersection of triangle and plane (not axis aligned). You can use it and test it with all cube faces.

I hope I answered your question. If not, then punch me and ask again :)

share|improve this answer
Next time you can try to find something here: – zacharmarz Feb 9 '11 at 0:06
Many thanks for the answer, I decided to change my strategy and do some intersection check in 2d rather than 3d, but I'm still clueless about them math? – Kevin Boyd Feb 9 '11 at 13:21
My new question is… – Kevin Boyd Feb 9 '11 at 13:47

A good explanation of a solution can be found at

1) Use the dot-product to determine whether the triangle lies fully on one side of the plane and does not intersect the plane at all.
2) If there is an intersection, use a line-plane-intersection-algorithm for the two edges hitting the plane (algorithm on the same page)

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.