x r y z r mv x p mv y mvz Aceleração altera velocidade que altera posição; vt 1 vt a.t v vxi v y j rt 1 xt 1 yt 1 xt 1 xt vx t.i yt 1 yt v y t. j Obs.: existem métodos de integração computacionalmente mais eficientes F2 F3 F1 F F3i F1 j F2 j Momento linear F F1i Equlíbrio: ΣF=0 Equilíbrio Dinâmico Equilíbrio Estático • Queda Livre X Queda Amortecida Aceleração da gravidade próximo à superfície da Terra: a=g=9,8m/s2 F = m.a P = m.g 2 v ac R Aceleração Centrípeta R: Raio da trajetória. Direção e sentido apontando para o centro da trajetória. Aceleração tangencial: v2 Fc m R 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. fate fatc 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: fate _ max e N Força de atrito cinético › Constante se as características das superfícies forem constantes: fatc c N 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. 1 FR CAv 2 2 A: Área da seção transversal efetiva do corpo ρ: densidade do fluido C: Coeficiente de arrasto 1 2 FR CAv 2 Se v aumenta, Fr aumenta, até que Fr = P Nesse caso, chega-se à velocidade terminal: vt 2 Fg C A Objeto vt (m/s) Peso em campos de tiro 145 Distância para 0.95vt (m) 2500 Bola de tênis Gota de chuva Para-quedista 42 7 5 210 6 3 Horizontal: a=0 Vertical: a=g=9,8m/s2 Newton expressou a sua segunda lei originalmente em termos de momento: p mv FRe s p t Impulso: variação de momento linear. Impulso: medida tanto da intensidade quanto da variação da força I p I F t , com F constante Exemplo: Colisões (força variável) Se nenhuma força externa resultante atua sobre um sistema de partículas, o momento linear total do sistema não pode variar Pi Pf , sistema fechado, isolado 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. Pi Pf 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 vt vn v Após a colisão: N v new v new v n v t Coeficiente de restituição x v x v x v v f / m 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. Começamos com: x v v f / m Aplicando o método de Euler: x(t t ) x(t ) t x(t ) x(t t ) x(t ) t x(t ) Fazendo substituições: x(t t ) x(t ) t v(t ) v(t t ) x(t ) t f (x , x ,t ) m Iterativamente: x i 1 x i t v i v i 1 fi v t m i Erros ocorrem dependendo de t. x v f m Posição no espaço de fase posição velocidade Acumulador de força massa typedef struct{ float m; /* mass */ float *x; /* position vector */ float *v; /* velocity vector */ float *f; /* force accumulator */ } *Particle; Em geral, temos um sistema de n partículas cujas posições devem ser determinadas no tempo: particles n time x1 x2 v v 1 2 f1 f2 m m 1 2 typedef struct{ float m; /* mass */ float *x; /* position vector */ float *v; /* velocity vector */ float *f; /* force accumulator */ xn v n fn m n typedef struct{ Particle *p; /* array of pointers to particles */ int n; /* number of particles */ float t; /* simulation clock */ } *ParticleSystem Em determinado instante, a função g define um campo vetorial de x: › Vento › Rios 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: Começar aqui Esse tipo de solução é denominada curva integral. https://www.youtube.com/watch?v=S7r 7OYufPo8 Considere uma partícula num campo de forças f. Nesse caso, a partícula tem: › Massa dv d x a x v › Aceleração dt dt › Velocidade › Posição A partícula obedece a segunda Lei de Newton: 2 2 f ma mx O campo de forças f pode depender da posição, da velocidade e do tempo Rearranjando, temos: x f (x , x ,t ) m Eq. Diferencial de segunda ordem x v Eqs. Diferenciais f (x , v ,t ) de primeira v m ordem 1. Clear forces Loop over particles, zero force accumulators Sum all forces into accumulators Loop over particles, return v and f/m 2. Calculate forces 3. Return derivatives x1 x2 v v 1 2 f1 0 f2 0 m m 1 2 xn v n fn 0 m n 1 Clear force accumulators F1 Apply forces to particles v1 v2 f f 1 2 m1 m2 vn f n mn 2 3 F2 x1 x2 v v 1 2 f1 f2 m m 1 2 Return derivatives to solver Fnf F3 xn v n fn m n 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. 1 n xcm mi xi M i 1 ycm 1 n mi yi M i 1 xcm m1 x1 m2 x2 m1 m2 Exemplo: FRe s MaCM Quantidade que indica como a massa do corpo em rotação está distribuída em torno do eixo rotacional. Definição: I mi ri 2 I I MR 2 MR 2 I 2 MR 2 ML2 I 4 12 M 2 2 ( R1 R2 ) 2 M (a 2 b 2 ) I 12 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: I I CM Mh 2 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. vCM R s s R A velocidade do CM é dada por: vCM ds d R R dt dt 𝜏 =𝐹×𝐿 f ma rF P mv L r p dP f dt Pi c dL dt Li c I r F r p mv Momento Angular q (t ) (t ) x(t ) L(t ) ((q(t ) x(t )) mi (q (t ) v(t ))) ( R(t )q mi ( (t ) (q(t ) x(t )))) (mi ( R(t )q ( (t ) R(t )q))) Tensor de Inércia 𝑑𝑚 I xx I I xy I xz I xx ( y z )dm 2 2 I yy ( x 2 z 2 )dm I zz ( x y )dm 2 2 I xy I yy I yz I xz I yz I zz I xy xydm I xz xzdm I yz yzdm x (t ) R (t ) S (t ) P (t ) L (t ) Object attributes M, Iobject-1 1 1 I rotated RI object R 1 P(t ) v(t ) M Espaço de fase F r rF x(t ) v(t ) * d d R (t ) w(t ) R (t ) S (t ) dt dt P (t ) F (t ) L(t ) (t ) w(t ) I (t ) 1 L(t ) 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: f kspring ( x r ) Podemos incluir termo de amortecimento: f [kspring ( x r ) kdampv] x1 p1 v1 r = comprimento em repouso x2 p2 v2 Nota: Muito instável com integração de Euler… Outros métodos como Runge-Kutta são recomendáveis Spring mesh Each vertex is a point mass Each edge is a spring-damper Diagonal springs for rigidity Global forces: gravity, wind 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 Incompressibilidade ut = k2u –(u)u – p + f Difusão Pressão Advecção Velocidade Forças Navier-Stokes Equations u=0 Incompressibility ut = k2u –(u)u – p + f Diffusion Pressure Advection Change in Velocity Body Forces Navier-Stokes Equations u=0 Incompressibility ut = k2u –(u)u – p + f Diffusion Pressure Advection Change in Velocity 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.2 3.7 cij 5.1 … cij 1 2c ct = k change in value value relative to neighbors 1 cijnew = cij + k t (ci-1j + ci+1j + cij-1 + cij+1 - 4cij) -4 1 1 Original Some Diffusion More Diffusion uij = (ux,uy) ut = 2 k u viscosity Two separate diffusions: x u y u t= 2 x k u t= 2 y k u … blur the x-velocity and the y-velocity Effect of Viscosity Low Medium High Very High • Each one is ten times higher viscosity than the last “Melting and Flowing” Mark Carlson, Peter J. Mucha, Greg Turk Symposium on Computer Animation 2002 Navier-Stokes Equations u=0 Incompressibility ut = k2u –(u)u – p + f Diffusion Pressure Advection Change in Velocity Body Forces Advection 0.3 0.3 2.7 ct = –(u)c change in value advection current values ut = –(u)u Two separate advections: x u y u t= x –(u)u t= y –(u)u … push around x-velocity and y-velocity Easy to code Method stable even at large time steps Problem: numerical inaccuracy diffuses flow Navier-Stokes Equations u=0 Incompressibility ut = k2u –(u)u – p + f Diffusion Pressure Advection Change in Velocity Body Forces High divergence Low divergence Zero divergence 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=? uyij+1 -uxi-1j ? uxi+1j -uyij-1 uij=(uxi+1j - uxi-1j) + (uyij+1-uyij-1) new u = u – p Take divergence of both sides… new u = u – p zero u = 2 p u = known 2 p pnew = p + ( u - 2p) Let dij = uij 1 unknown 1 -4 1 1 pnewij = pij + (dij - (pi-1j + pi+1j + pij-1 + pij+1 - 4pij)) new u = 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/fl uids.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/s lidesf.pdf