To clip or not to clip ?

Thinking about new hardware monster like GeForce 3 I was doing some neuron shaking about clipping :
with nowadays hardware it’s usefull to have a clipping routines that subdivide triangles with viewing frustum planes ?
Let me explain, if I have a big triangle whose vertrex are all outside the frustum but still some surface of the triangle is in I need to split the triangle using the frustum planes.
Ok, do we really increase performance with this ?
Or it’s better to test if (for example) triangle center if far away from frustum planes more than “longest-center-vertex” distance and let the hardware do the clipping ? (let’s say we have precalculated center-vertex distance for every triangle)



I think that with hardware T&L, the best performance is achieved by doing culling very coarsely. Test objects that consist of a couple hundred to a thousand triangles with the bounding box of the object. If an object might be visible, send the whole thing and let the GPU sort it out.

This generally be faster than testing on a per-triangle basis.


Our HW frustum clipping is 100% free on GeForce and up. Do not make any attempt to pre-clip your geometry. However, frustum culling is strongly encouraged.

  • Matt

>with nowadays hardware it’s usefull to have
>a clipping routines that subdivide triangles
>with viewing frustum planes ?

Guard band clipping/rendering will take care
of that case for free on any modern hardware.
Don’t spend time sub-dividing your geometry,
unless you do it to add detail (a la bezier
patches or something).