Un GPU peut déjà supprimer les polygones sur une base par polygone, mais cela se produit au moment de la tramage / configuration qui se produit après l' ombrage des sommets (en utilisant les shaders Vertex / Geometry / Hull / Domain). Cela signifie que le GPU peut toujours finir par ombrer les sommets des polygones qui finiront par être éliminés. Si cela se produit, le GPU aura fait beaucoup de travail pour rien et sera donc un gaspillage de cycles GPU.
Pour cette raison, nous essayons de ne pas gaspiller les cycles GPU en éliminant la géométrie invisible côté CPU (ou côté GPU en utilisant les fonctionnalités DX10 + telles que DrawIndirect et / ou le rendu prédicat) dans des lots de polygones en n'appelant simplement pas draw pour ces lots.
Généralement, ce lot de polygones peut être représenté par une sphère ou une boîte qui entoure tous ces polygones. Cette sphère / boîte englobante est ensuite testée contre le tronc et si elle touche le tronc, l'appel de dessin est invoqué pour ces polygones. Sinon, l'appel de tirage est ignoré. Un octree est simplement une autre façon de déterminer quels lots de géométrie sont visibles, sauf qu'il organise ces données de manière hiérarchique. Les octrees ne conviennent pas nécessairement à toutes les géométries.
Voici quelques références assez bonnes qui expliquent la technique sphère / tronc: