Clipping Planes: x = ± w, y = ± w, z = ± w

OK … vertex data can be specified in the homogeneous form (x, y, z, w) e.g. (5, 3, 0, 1.5), BUT why do are the clipping planes “restricted” - or so it appears - to x = ± w, y = ± w, z = ± w ??? …

In the above case, the clipping planes would be x = ± 1.5, y = ± 1.5, z = ± 1.5 and not the left, right, bottom, top, near & far values specified/implied in glFrustum() and related transforms …

Please be explicit, I’m sometimes slow in the uptake :wink:

[This message has been edited by Olumide (edited 03-15-2002).]

I think you’re talking about the clipping volume, not necessarily user clip planes

That’s because somewhere around the transformation to normalized device coordinates (not sure about the exact position in the pipe right now), you get perspective division, so that your (x,y,z,1.5) gets transformed to (x/1.5,y/1.5,z/1.5) and completely loses its w value. The w value is mostly required for interpolated attributes (texcoords, colors …).

Your clip volume is (-w;w)(-w;w)(-w;w) because that’s in terms of before perspective division.

Hope that made sense