Una GPU ya puede eliminar los polígonos por polígono, pero esto sucede en el tiempo de rasterización / configuración que ocurre después del sombreado de vértices (usando sombreadores Vertex / Geometry / Hull / Domain). Esto significa que la GPU todavía puede terminar sombreando vértices de polígonos que terminarán siendo eliminados. Si esto sucede, la GPU habrá hecho mucho trabajo por nada y, por lo tanto, es una pérdida de ciclos de GPU.
Por esta razón, tratamos de no desperdiciar los ciclos de GPU al eliminar la geometría invisible en el lado de la CPU (o en el lado de la GPU usando características DX10 + como DrawIndirect y / o renderizado predicado) en lotes de polígonos simplemente no llamando a dibujar para esos lotes.
Normalmente, ese lote de polígonos se puede representar mediante una esfera o cuadro que rodea a todos esos polígonos. Esta esfera / cuadro delimitador se prueba luego contra el tronco y si toca el tronco, se invoca la llamada de sorteo para esos polígonos. Si no, se salta la llamada de sorteo. Un octree es simplemente otra forma de determinar qué lotes de geometría son visibles, excepto que organiza esos datos de forma jerárquica. Los octrees no son necesariamente adecuados para toda la geometría.
Siguen algunas referencias bastante buenas que explican la técnica de esfera / tronco: