[en] GPU-BASED PARTICLE SIMULATION WITH COLLISION HANDLING - JERONIMO SILVERIO VENETILLO (2007)
[pt] Este trabalho apresenta uma nova proposta para a implementação de um sistema de partículas em GPU. A simulação é feita inteiramente no processador gráfico, o que elimina a transferência de dados entre a CPU e a GPU. O sistema proposto é capaz de simular partículas de diferentes diâmetros em ambientes confinados, incluindo tratamento de colisão entre partículas, restrições e colisão de partículas com o ambiente. A detecção de colisão entre as partículas é feita com base numa estrutura de subdivisão do espaço em uma grade regular de células. Em GPUs atuais, o sistema é capaz de simular um milhão de partículas a taxas iterativas. Também é proposto um método flexível para modelar os obstáculos que compõe o ambiente, permitindo a criação de diferentes cenas sem necessidade de re-codificação de shaders. O sistema é composto por diferentes shaders, responsáveis por cada etapa da simulação. Um programa de fragmentos é responsável por fazer a atualização da posição das partículas. Em seguida, um programa de vértices faz a montagem da estrutura de subdivisão espacial. As etapas seguintes (detecção e tratamento de colisão e de restrições) são efetuadas apenas por programas de fragmentos usando a técnica de relaxação.