Detecção de colisão Broad Phase: nova solução e metodologia implementadas para análise padronizada de algoritmos - Serpa, Ygor Reboucas (2019)
A área de detecção de colisão é responsável por detectar interseções geométricas e, de forma geral, relações de proximidade entre objetos geométricos. Permeia uma extensa variedade de aplicações, tais como, simulações físicas, planejamento de rotas, controle de agentes, simulação de multidões, entre outras, sendo de vital importância para a geração de cenas com objetos interagindo entre si, de forma realista. Estes objetos podem ser uniformemente ou não-uniformemente distribuídos, as cenas podem ser predominantemente estáticas ou completamente dinâmicas, com objetos de tamanhos e formatos similares ou distintos, etc. Para simplificar o processo da detecção de colisão, inicialmente, são considerados apenas os volumes envoltórios das geometrias reais dos objetos, fase conhecida como broad phase, em seguida, são realizados testes mais precisos entre pares de objetos colidentes. Contudo, poucas soluções que refletem o estado-da-arte dedicam-se a resolver o problema, simultaneamente, de forma geral e eficiente (muitas são eficientes apenas no caso estático, ou quando há uma distribuição uniforme de objetos). Este trabalho apresenta duas contribuições principais para a área de detecção broad phase: uma nova solução em CPU, a qual atende simultaneamente aos requisitos de eficiência, escalabilidade e generalidade; e uma metodologia nomeada Broadmark, implementada como um ambiente de software aberto para análise comparativa de algoritmos. Mais especificamente, a nova solução em CPU é um híbrido entre árvores K-dimensionais e os algoritmos Sweep-and-Prune e de detecção de colisão incremental, orquestrado por um eficiente algoritmo idempotente de atualização. Por usa vez, Broadmark engloba um gerador extensível de cenários de colisão e uma ferramenta de execução e análise, que acompanha implementações originais, da academia e indústria, em nível de CPU e GPU, incluindo a nova solução híbrida. Utilizando Broadmark, um estudo comparativo foi realizado, mostrando que os desempenhos das soluções seriais e paralelas são similares, sendo sugestivo de que hardwares paralelos podem ser melhor explorados. Além disso, os resultados mostram que a nova solução híbrida é eficiente, sendo a mais competitiva entre as soluções seriais e, para cenários estáticos, mais eficiente que as soluções em GPU. Adicionalmente, esta provou ser geral e escalável, em cenários coerentes e incoerentes, bem como em distribuições uniformes e não uniformes de objetos. Com estas contribuições, espera-se que a validação de novas soluções possa ser feita de forma muito mais simples, fomentando a criação de soluções mais genéricas e eficientes, para que o problema torne-se cada vez menos sensível às aplicações.