Autor(es):
William Santos Almeida, Mozart
Data: 2014
Origem: Oasisbr
Assunto(s): Simulação física; Point Based Animation; Computação paralela; CUDA; Simulação física; Simulação física; Point Based Animation; Point Based Animation; Computação paralela; Computação paralela; CUDA; CUDA
Descrição
Conselho Nacional de Desenvolvimento Científico e Tecnológico
Modelos de simulação física baseados em pontos vêm se tornando ao longo dos anos uma alternativa à utilização de malhas, visto que além de possiblitarem a simulação de características físicas mais realistas, possibilitam esta realização de forma mais eficiente do que nos modelos baseados em malhas. Esta dissertação de mestrado apresenta o desenvolvimento de uma solução para a simulação baseada em pontos de objetos deformáveis em tempo real, através da implementação de uma técnica livre de malha (meshless), conhecida por Point-Based Animation. Esta técnica utiliza apenas pontos como unidades de simulação, consequentemente reduzindo a necessidade de manter a informação de conectividade entre eles através de arestas. Essa abordagem possibilita a simulação mais eficiente de certos comportamentos, como mudança de topologia, por exemplo. Dessa forma, este modelo de simulação é adequado para a paralelização, podendo ser otimizado para execução em tempo real. Uma versão paralela do algoritmo foi implementada nesta dissertação, a fim de tornar os resultados interativos da versão sequencial do algoritmo em resultados de tempo real. Uma análise comparativa entre uma implementação em um processador de propósito geral (CPU) e uma em uma placa gráfica (GPU), através da abordagem massivamente paralela provida pela NVIDIA Compute Unified Device Architecture (CUDA), mostra um significativo ganho de desempenho. Foi observada a capacidade de simular em GPU dez objetos simultâneos a uma taxa de quadros por segundo (FPS) maior do que a execução de apenas um objeto em CPU, apesar da existência de alguns problemas relativos à precisão e estabilidade, em parte devido a algumas limitações impostas pela utilização da arquitetura de CUDA