   All points in a triangle are not on a single plane!?
  I just blew my mind and I'm not sure what happened. I am clearly doing something wrong, or thinking wrongly.I am using a plane equation to interpolate z-buffer values. I am taking a simple triangle. The vertices are: v0 = (110, 38, 2), v1 = (138, 59, 2), v2 = (94, 48, 2). Notice, ALL Z VALUES FOR TRIANGLE ARE THE SAME: 2.I can use a plane equation: Ax + By + Cz + D = 0. Of course, (A, B, C) is simply the normal to this triangle plane. So, simply take the cross product of: v0 X v1 to get the normal. This gives:A = -42, B = 56, C = 1246.Now we know A, B, C for the entire triangle. We can plug in the (x, y, z) of v0 and solve for D. This gives:D = 0.Now we rearrange the equation to solve for z:z = -(Ax + By + D) / CNow for every point within that triangle, we know A, B, C, D, x and y. z can be solved for.Since the 3 vertices of the triangle all of the same z-value of 2, I would assume that all points WITHIN the triangle have a z = 2. This is not the case, however.For example, use x = 109, y = 39. If I solve the equation for z, I get z = 1.92. This makes no sense to me, since all points in a triangle lay on the same plane.Is this roundoff? Am I using the plane equation wrong? This is giving me some major z-buffer issues in my renderer. Thanks for any help.   
  v0, v1 and v2 are vectors, not points (or rather, they should be).You need to subtract pairs of points to get vectors that lie in the plane.  By using the points in the plane as vectors, you've essentially used vectors from (0, 0, 0) to the points on the plane.  Since (0, 0, 0) is not on the plane, these vectors are not parallel to the plane, and their cross product is not the normal.A sanity check: Your triangle points all have z = 2, so the plane is parallel to the X-Y plane, and the normal to the plane should be some multiple of (0, 0, 1).   ;  Oh jeez. I'm an idiot. I won't disclose how much time I've wasted on this. Thank you for your quick response.   