, spivonious wrote

@evildictaitor: But doesn't D3D already do those clipping and occlusion calculations?

No it explicitly doesn't for the simple reason that occlusion and clipping are expensive and graphics needs to be fast and it really doesn't want to do unnecessary checks in the hot path of the frame renderer.

The DirectX API takes the view that understanding the context of what you're doing is done best by the programmer, and that implementing its own checks on top would

a) Potentially be duplicated effort, if the programmer already does them him/herself.

b) Potentially be more expensive than other, cheaper or better techniques which the programmer might have invented.

c) Might be unnecessary because of some context-specific reason which DirectX doesn't know about (for example why should DirectX check that polygons aren't behind the camera if the programmer knows s/he didn't put any there.

d) Might be ineffective. Culling occluded polygons is only a good idea if there is an opaque texture over the occluding polygon, which is expensive to check. Surely the programmer either knows that he doesn't use semi-transparent textures so he can always cull, or is in wireframe mode and can never cull better than DirectX?

DirectX is supposed to be fast. The programmer is supposed to be clever - not the other way around.