Quadtree

Uma quadtree é uma estrutura de dados utilizada para calcular sombras de tracejamento de raio.

A quadtree representa a cena do ponto de vista da luz. O nó raiz da quadtree lista todos os objetos que são visíveis na vista. Se muitos objetos forem visíveis, o nó gerará outros quatro nós, cada uma representando um quarto da vista, cada um com uma lista de objetos nessa parte. Esse processo continua de forma adaptativa até que cada nó tenha somente um número reduzido de objetos ou o limite de profundidade da quadtree (que pode ser definido para cada luz) seja atingido.

Cada raio de luz que projeta sombras deve testar a interseção com os objetos em somente um dos nós de folha da quadtree. Isso ajuda a acelerar o processo de tracejamento de raio. Em geral, aumentar a profundidade máxima da quadtree pode acelerar o tracejamento de raio em detrimento da memória.

O tamanho máximo de uma quadtree é o quadrado de duas vezes a potência da profundidade máxima da quadtree. Com uma profundidade de 7, a maior quadtree tem de 128 x 128 nós de folha; a uma profundidade de 10, a maior quadtree tem um tamanho de 1028 x 1028 nós de folha e assim por diante. (Por outro lado, como cada nó sucessivo contém menos objetos, o tamanho do registro de um nó diminui quanto mais profundo ele é na árvore.)

Nota: Uma luz omni pode gerar até dez quadtrees, portanto, luzes omni que projetam sombras de tracejamento de raio utilizam mais memória no tempo de renderização do que as luzes de spot.