Apresentação do PowerPoint - inf.pucrs.brsmusse/Animacao/PDFs... · Newton expressou a sua...
Transcript of Apresentação do PowerPoint - inf.pucrs.brsmusse/Animacao/PDFs... · Newton expressou a sua...
Aceleração altera velocidade que altera
posição; tavv tt .1
jvivv yx
111 ttt yxr
jtvyy ytt
.1
itvxx xtt
.1
Obs.: existem métodos de integração
computacionalmente mais eficientes
Aceleração Centrípeta R
vac
2
R: Raio da trajetória.
Direção e sentido apontando
para o centro da trajetória.
Quando um corpo está em contato com uma superfície, a superfície, ainda que aparentemente rígida, deforma e empurra o corpo com uma força normal N que é perpendicular à superfície.
Forças de atrito:
› Opostas à tendência de movimento
› Dependem das características das
superfícies em contato
› Processo de solda entre os “picos” das superfícies
Estático (fate): › Os pontos em contato entre as superfícies se
soldam, de forma que há resistência ao movimento relativo entre as superfícies.
Cinético (fatc): › Caso uma força aplicada seja suficiente
para romper as soldas iniciais, novas soldas continuamente são formadas e rompidas durante o deslizamento.
ce fatfat
Força de atrito estático: › Variável:
Se nenhuma força com componente tangencial à superfície de contato for aplicada, a fate é igual a zero;
Se houver força com componente tangencial à superfície de contato, a fate aumenta até um valor máximo dado por:
Força de atrito cinético › Constante se as características das superfícies
forem constantes:
Nfat ee max_
Nfat cc
Quando há uma velocidade relativa
entre um fluido e um corpo, o corpo
experimenta uma força de arrasto
que se opõe ao movimento relativo e
que está direcionada no mesmo sentido
em que o fluido escoa em relação ao
corpo.
2
2
1AvCFR
A: Área da seção transversal efetiva
do corpo
ρ: densidade do fluido
C: Coeficiente de arrasto
Se v aumenta, Fr aumenta, até que
Fr = P
Nesse caso, chega-se à velocidade terminal:
2
2
1AvCFR
AC
Fv
g
t
2
Objeto vt (m/s) Distância para
0.95vt (m)
Peso em
campos de tiro
145 2500
Bola de tênis 42 210
Gota de chuva 7 6
Para-quedista 5 3
Impulso: variação de momento linear.
Impulso: medida tanto da intensidade
quanto da variação da força
Exemplo: Colisões (força variável)
pI
constanteFcom,tFI
Se nenhuma força externa resultante
atua sobre um sistema de partículas, o
momento linear total do sistema não
pode variar
, sistema fechado, isolado fi PP
Colisão é uma interação entre partículas,
durante a qual há conservação do
momento linear do sistema, isto é, o
momento linear do sistema, antes da
colisão, é igual ao momento linear do
sistema, após a colisão.
fi PP
Colisões elásticas
› Numa colisão elástica conserva-se a energia cinética
do sistema.
Colisões inelásticas
› Não há conservação da energia cinética do sistema.
Colisões perfeitamente inelásticas (
perfeitamente inelásticas )
› Não existe conservação da energia cinética do
sistema e os corpos seguem juntos após a colisão, isto
é, com a mesma velocidade após a colisão.
É a razão entre a velocidade relativa antes e após a colisão:
Onde: › v'a é a velocidade escalar final do primeiro objeto
após o impacto
› v'b é a velocidade escalar final do segundo objeto após o impacto
› va é a velocidade escalar inicial do primeiro objeto antes do impacto
› vb é a velocidade escalar inicial do segundo objeto antes do impacto
Voltar a simulação ao ponto exato de
contato
Modificar posições e velocidades
nv
tv
vN
newv
Após a colisão:
tn
newvvv
Coeficiente de restituição
Vetores concatenados x e v
formam um vector 6-n:
posição no espaço de fase.
Fazendo a derivada
primeira do espaço de fase.
Temos equações
diferenciais de ordem 1.
x
v
/ m
x v
v f
x
v
Aplicando o método de Euler:
( ) ( ) ( )
( ) ( ) ( )
t t t t t
t t t t t
x x x
x x x
Erros ocorrem dependendo de t.
/ m
x v
v f
1
1
i i i
ii i
t
tm
x x v
fv v
( ) ( ) ( )
( , , )( ) ( )
t t t t t
tt t t t
m
x x v
f x xv x
Fazendo substituições:
Iterativamente:
Começamos com:
m
x
v
f
posição
velocidade Acumulador de força
massa
Posição no espaço de fase
typedef struct{
float m; /* mass */
float *x; /* position vector */
float *v; /* velocity vector */
float *f; /* force accumulator */
} *Particle;
particles n time
Em geral, temos um sistema de n partículas cujas posições devem
ser determinadas no tempo:
1 2
1 2
1 2
1 2
n
n
n
nm m m
x x x
v v v
f f f
typedef struct{
Particle *p; /* array of pointers to
particles */
int n; /* number of particles */
float t; /* simulation clock */
} *ParticleSystem
typedef struct{
float m; /* mass */
float *x; /* position vector */
float *v; /* velocity vector */
float *f; /* force
accumulator */
} *Particle;
A equação:
é uma equação diferencial de primeia ordem.
Podemos resolver para x ao longo do tempo,
colocando a partícula em uma posição inicial e integrando passo a passo no campo vetorial:
Esse tipo de solução é denominada curva integral.
Começar aqui
𝑥 = 𝑔(𝑥, 𝑡)
Considere uma partícula num campo de forças f.
Nesse caso, a partícula tem:
› Massa
› Aceleração
› Velocidade
› Posição
A partícula obedece a segunda Lei de Newton:
O campo de forças f pode depender da posição, da velocidade e do tempo
Rearranjando, temos:
( , , )t
m
f x xx
m m f a x
2
2d d
dt dt
va x v
x
( , , )t
m
x v
f x vv
Eq. Diferencial
de segunda
ordem
Eqs. Diferenciais
de primeira
ordem
1 2
1 2
1 2
1 2
0 0 0
n
n
n
nm m m
x x x
v v v
f f f
1. Clear forces Loop over particles, zero force accumulators
2. Calculate forces Sum all forces into accumulators
3. Return derivatives Loop over particles, return v and f/m
1 2
1 2
1 2
n
n
nm m m
v v v
f f f
Apply forces
to particles
Clear force
accumulators 1
2
3 Return derivatives
to solver
1 2
1 2
1 2
1 2
n
n
n
nm m m
x x x
v v v
f f f
F2 F3 Fnf F1
O movimento complexo de um sistema de objetos (um carro ou uma bailarina) pode ser simplificado se determinarmos o CENTRO DE MASSA desse sistema.
O CENTRO DE MASSA de um sistema de partículas é o ponto que se move como se ali toda a massa do sistema estivesse concentrada e todas as forças externas fossem aplicadas.
Quantidade que indica como a massa do corpo em rotação está distribuída em torno do eixo rotacional.
Se soubermos o momento de inércia de
um corpo em relação ao eixo que passa
pelo seu centro de massa ICM e
quisermos conhecer o momento de
inércia em relação a outro eixo, paralelo
ao primeiro e situado a uma distância h,
temos que:
2MhII CM
O deslocamento do centro de massa e a rotação estão vinculados:
s é o deslocamento do centro de massa do objeto
é o deslocamento angular do objeto em torno de um eixo que
passa pelo CM do sistema.
A velocidade do CM é dada por:
Rdt
dR
dt
dsvCM
CMv
Rs
R
s
Momento Angular
)))()(())()((()( tvtqmtxtqtL i
)(t
)(tq
)(tx
))))()(()((( qtRtqtRmi
))))()(()(()(( txtqtmqtR i
Tensor de Inércia
zzyzxz
yzyyxy
xzxyxx
III
III
III
I
dmzyI xx )( 22
dmzxI yy )( 22
dmyxI zz )( 22
xydmI xy
xzdmI xz
yzdmI yz
𝑑𝑚
Espaço de fase
111 RRII objectrotated
)(
)(
)(
)(
)(
tL
tP
tR
tx
tS
)()()( 1 tLtItw
M
tPtv
)()(
)(
)(
)()(
)(
)(
)(
)(
)(
)(
*
t
tF
tRtw
tv
tL
tP
tR
tx
dt
dtS
dt
d
F
Frr
Object attributes
M, Iobject-1
Obs: Na prática, utiliza-se quatérnions ao
invés de matriz de rotação
Pontos discretos de massa (~particle system) conectados por uma rede de molas sem massa
Usado para modelar pele, músculos, cabelos, roupas, …
Lei de Hooke:
Podemos incluir termo de amortecimento:
Nota: Muito instável com integração de Euler… Outros métodos
como Runge-Kutta são recomendáveis
( )springf k x r
[ ( ) ]spring dampf k x r k v
r = comprimento
em repouso
1
1
1
p
x
v
2
2
2
p
x
v
Spring mesh
Each edge is a spring-damper
Each vertex is a point mass
Global forces: gravity, wind
Diagonal springs for rigidity
Algoritmo › Há n partículas no sistema e x representa o vetor
posição m (d2X/dt2) + C (dX/dt) + K X = F
› m, C, K são matrizes 3n x 3n:
massa, constante de amortecimento dureza das molas. m e C são diagonais. F é a força.
› Para resolver:
dV/dt = M–1 ( - CV - KX + F) dX/dt = V
Equações de Navier-Stokes
u=0
ut = k2u –(u)u – p + f
Incompressibilidade
Velocidade
Advecção
Difusão
Forças
Pressão
Navier-Stokes Equations
u=0
ut = k2u –(u)u – p + f
Incompressibility
Change in Velocity
Advection
Diffusion
Body Forces
Pressure
Navier-Stokes Equations
u=0
ut = k2u –(u)u – p + f
Incompressibility
Change in Velocity
Advection
Diffusion Pressure
Body Forces
All values live on regular grids
Need scalar and vector fields
Scalar fields: amount of smoke or dye
Vector fields: fluid velocity
Subtract adjacent quantities to
approximate derivatives
1
1
1
1
-4
cijnew = cij + k t (ci-1j + ci+1j + cij-1 + cij+1 - 4cij)
ct = k2c
change in
value
value relative
to neighbors
ut = k2u
… blur the x-velocity and the y-velocity
uxt = k2ux
uyt = k2uy
Two separate diffusions:
viscosity
Effect of Viscosity
• Each one is ten times higher viscosity
than the last
Low Medium High Very High
“Melting and Flowing”
Mark Carlson, Peter J. Mucha, Greg Turk
Symposium on Computer Animation 2002
Navier-Stokes Equations
u=0
ut = k2u –(u)u – p + f
Incompressibility
Change in Velocity
Advection
Diffusion Pressure
Body Forces
ut = –(u)u
uxt = –(u)ux
uyt = –(u)uy
Two separate advections:
… push around x-velocity and y-velocity
Navier-Stokes Equations
u=0
ut = k2u –(u)u – p + f
Incompressibility
Change in Velocity
Advection
Diffusion Pressure
Body Forces
First do velocity diffusion and advection
Find “closest” vector field that is
divergence-free
Need to calculate divergence
Need to find and use pressure
u = 2p
pnewij = pij + (dij - (pi-1j + pi+1j + pij-1 + pij+1 - 4pij))
pnew = p + ( u - 2p)
Let dij = uij
known unknown
1
1
1
1
-4
unew = u – p
…and velocity is now divergence-free
Found “nearest” divergence-free vector
field to original.
1) Diffuse velocity
2) Advect velocity
3) Add body forces (e.g. gravity)
4) Pressure projection
5) Diffuse dye/smoke
6) Advect dye/smoke
Andrew Nealen, Matthias Müller, Richard Keiser, Eddy Boxerman and Mark Carlson. Physically Based Deformable Models in Computer Graphics. Eurographics STAR. 2005;
Greg Turk. Lecture Notes: Fluid Simulation for Computer Animation. http://www.cc.gatech.edu/~turk/powerpoint_presentations/fluids.ppt
Rick Parent. Computer Animation: Algorithm and Techniqes. Elsevier.
David Baraff. Rigid Body Dynamics. SIGGRAPH Course notes 2001. http://www.pixar.com/companyinfo/research/pbm2001/pdf/slidesf.pdf