Uma nova solução para visibility culling de cenas genéricas, baseada em replicação, heurísticas e redução de draw calls - Serpa, Yvens Reboucas (2017)
Este trabalho apresenta RHView, uma nova solução para o problema de visibility culling, baseada em uma estrutura de particionamento espacial replicada (R), heurísticas (H) e redução de draw calls. RHView contempla cenas tridimensionais genéricas, sejam estas completamente estáticas ou mesmo compostas por objetos dinâmicos. Adicionalmente, inclui os algoritmos tradicionais View-Frustum Culling, Backface Culling e Occlusion Culling, adaptados e integrados à estrutura replicada, a qual mantém cópias das malhas geométricas contidas em seus nós, possibilitando a redução eficiente do número de draw calls. Mais especificamente, RHView determina a visibilidade de objetos dinâmicos usando os algoritmos de View-Frustum Culling e Occlusion Culling, este último, acionado por uma heurística de custo e adaptado para melhor gerência de Occlusion Queries. Em termos gerais, as principais características e heurísticas da RHView são: identificação de oclusores dinâmicos em tempo de execução, cálculo do estado de visibilidade, uso de nível de detalhamento (LoD) dos objetos em cena (baseado na distância à câmera e no número de fragmentos dos mesmos), coerência temporal, heurística de mínimo de triângulos por nó e de custo em memória. Testes comparativos de desempenho foram conduzidos de forma sistemática em cenários internos e externos variados, contendo de 500 mil a 1,5 bilhão de vértices, com diferentes dimensões e densidades de triângulos por unidade de medida. Mais especificamente, RHView foi comparada frente a duas soluções que refletem o estado-da-arte, Nested Grid e CHC++, bem como às estruturas tradicionais de particionamento espacial, Grid, KD-Tree e Octree. Os resultados obtidos mostram que RHView apresenta desempenho sempre superior, exibindo menor tempo de processamento e menor número de draw calls (tendo reduzido este último, em até 12 vezes, em alguns dos testes conduzidos). Em particular, RHView foi até 2,8, 30 e 48 vezes mais rápido que, respectivamente, o CHC++, o Nested Grid e as estruturas de particionamento tradicionais. RHView baseia-se em uma razão custo/benefício entre precisão e número de draw calls, obtendo maiores taxas de quadros por segundo (FPS), mesmo quando, ocasionalmente, apresentou menores taxas de remoção de triângulos, em comparação às outras abordagens. Com relação à heurística para cálculo do tempo de renderização proposta, esta apresentou um erro médio de ±0,05s e ±0,0005s, no pior e melhor casos, respectivamente. Palavras-chave: Visibility Culling, Cenas Genéricas, Estrutura de Particionamento Espacial Replicada, Heurísticas, Draw Calls