[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. / [en] This work presents a new proposal for the implementation
of a GPU-based
particle system. The simulation runs entirely on the
graphic processor, thus
eliminating data transfer between the CPU and the GPU. The
proposed system is
able to simulate particles with different diameters in
confined environments,
including support for inter-particle collisions,
constraints, and particle-obstacle
collisions. Inter-particle collision detection is
accomplished by subdividing the
space into a regular grid of cells. On modern graphics
cards, the system is able to
simulate up to one million particles at interactive rate.
It is also proposed a
flexible approach for modeling the obstacles that define
the environment, allowing
the creation of different scenes without relying on shader
re-coding. The system is
divided in different shaders responsible for each stage of
the simulation. One
fragment program is responsible to advance the particles
in time. After that a
vertex program builds the space subdivision structure. The
following stages
(collision detection and response, and constraint solving)
are performed only by
fragment programs using the relaxation method.
Identifer | oai:union.ndltd.org:puc-rio.br/oai:MAXWELL.puc-rio.br:10474 |
Date | 31 August 2007 |
Creators | JERONIMO SILVERIO VENETILLO |
Contributors | WALDEMAR CELES FILHO |
Publisher | MAXWELL |
Source Sets | PUC Rio |
Language | Portuguese |
Detected Language | Portuguese |
Type | TEXTO |
Page generated in 0.0013 seconds