You are on page 1of 40

Animacin basada en principios

sicos y matemcos.
Una referencia bsica para
estudiantes y profesionistas
dedicados al desarrollo de
videojuegos, grcos, ingeniera y
matemcas.
Una exhausva invesgacin
que muestra cmo los modelos
matemcos se derivan de los
principios sicos y matemcos.
Una concisa y clara explicacin de
cmo los modelos matemcos son
resueltos por computadora de forma
eciente y estable.
ERLEBEN / SPORRING / HENRIKSEN / DOHLMANN
FSICA PARA
VIDEOJUEGOS
Fsica para videojuegos
Kenny Erleben, Jon Sporring, Knud Henriksen y Henrik Dohlmann
^usLralla Brasll Corea Lspana LsLados Unldos japn Mexlco kelno Unldo Slngapur
Traduccin
Jorge Manzano Olmos
Traductor profesional
Revisin Tcnica
Hctor Manuel Gmez Gutirrez
Maestro en Ciencias en Fsica
Fsica para videojuegos
Kenny Erleben, Jon Sporring, Knud Henriksen y
Henrik Dohlmann
Presidente de Cengage Learning
Latinoamrica
Fernando Valenzuela Migoya
Director de producto y desarrollo
Latinoamrica
Daniel Oti Yvonnet
Director editorial y de produccin
Latinomerica
Ral D. Zendejas Espejel
Editor
Pablo Miguel Guerrero Rosas
Coordinadora de produccin editorial
Abril Vega Orozco
Editora de produccin
Gloria Luz Olgun Sarmiento
Coordinador de manufactura
Rafael Prez Gonzlez
Diseo de portada
Tyler Creative
Imagen de portada
Kenny Erleben
Composicin tipogrfca
Black Blue
Impreso en Mxico
1 2 3 4 5 6 7 14 13 12 11
D.R. 2012 por Cengage Learning Editores, S.A. de
C.V., una compaa de Cengage Learning, Inc.
Corporativo Santa Fe
Av. Santa Fe, nm. 505, piso 12
Col. Cruz Manca, Santa Fe
C.P. 05349, Mxico, D.F.
Cengage Learning es una marca registrada usada
bajo permiso.
DERECHOS RESERVADOS. Ninguna parte de
este trabajo amparado por la Ley Federal del
Derecho de Autor podr ser reproducida,
transmitida, almacenada o utilizada, en
cualquier forma o por cualquier medio, ya sea
grfco, electrnico o mecnico, incluyendo
pero sin limitarse a lo siguiente: fotocopiado,
reproduccin, escaneo, digitalizacin,
grabacin en audio, distribucin en internet,
distribucin en redes de informacin o
almacenamiento y recopilacin en sistemas
de informacin, a excepcin de lo permitido
en el captulo III, artculo 27 de la Ley Federal
del Derecho de Autor, sin el consentimiento
por escrito de la editorial.
Traducido del libro:
Physics-Based Animation
Publicado en ingls por Cengage Learning/ Delmar
Charles River Media, inc
2005
ISBN 10: 1-58450-380-7
Datos para catalogacin bibliogrfca:
Fsica para videojuegos
Erleben, Kenny, Jon Sporring, Knud Henriksen y
Henrik Dohlmann
ISBN-13: 978-607-481-506-1
Visite nuestro sitio en:
http://latinoamerica.cengage.com
Se termin de imprimir en
en los talleres de
Edamsa Impresiones, S.A. de C.V.
en Av. Hidalgo 111, colonia San Nicols Tolentino
Iztapalapa, Mxico D.F. CP 09850
octubre de 2011
V
Contenido
Prefacio
1 Introduccin 1
1.1 Modelo de grcas computarizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Taxonoma de los mtodos de animacin basada en la fsica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Cmputo cientco vs grcas computarizadas en la prctica . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Puntos de estudio en el futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5 Gua para el lector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
I LA CINEMTICA 11
2 Figuras articuladas 15
2.1 Eslabones y juntas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Coordenadas apareadas de junta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Denavit-Hartenberg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3 Cinemtica directa e inversa 45
3.1 Efector nal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2 Cinemtica directa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.3 Cinemtica inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4 Interpolacin de movimiento 71
4.1 Cuadros clave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2 Movimiento programado usando curvas continuas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
II ANIMACIN DE VARIOS CUERPOS 85
5 Animacin de varios cuerpos basada en penalizacin 89
5.1 Los fundamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5.2 El oscilador armnico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.3 Seleccin de los valores de parmetro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.4 Solucin numrica de osciladores armnicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
vi CONTENIDO
5.5 Uso del mtodo de penalizacin en la prctica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.6 Oscilaciones secundarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5.7 Mtodo de dinmica inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.8 Modelado de la friccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.9 Resea de trabajos previos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
6 Animacin de varios cuerpos basada en impulso 125
6.1 Colisin de un solo punto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
6.2 Mltiples puntos de colisin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
6.3 Avance conservativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
6.4 Escalonamiento jo con separacin de colisin y contactos . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
7 Animacin de varios cuerpos basada en restriccin 183
7.1 Ecuaciones de movimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
7.2 La condicin de contacto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
7.3 Linealizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
7.4 El caso con friccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
7.5 Juntas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
7.6 Modelado de juntas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
7.7 Tipos de junta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
7.8 Lmites de junta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
7.9 Motores de junta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
7.10 Mtodos de escalonamiento del tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
7.11 Diseo de restriccin unicado orientado a objeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
7.12 Actualizacin de posicin modicada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
7.13 Mezclado de fuerza de restriccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
7.14 Mundo de primer orden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
7.15 Trabajos anteriores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
III LA DINMICA DE LOS OBJETOS DEFORMABLES 257
8 Sistemas de partculas 265
8.1 Sistemas de partculas newtonianas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
8.2 Solucin de ecuaciones diferenciales ordinarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
8.3 Ley del resorte de Hooke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
8.4 Fuerzas en partculas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
8.5 Sistemas de energa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
8.6 Dinmica de restricciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
8.7 Incrementos grandes en simulacin de tela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
FSICA PARA VIDEOJUEGOS vii
9 Modelos de continuo con diferencias nitas 305
9.1 Modelo de objetos deformables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
9.2 Relajacin de modelo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
9.3 Discretizacin de la relajacin del modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
9.4 Fuerzas externas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
10 El mtodo del elemento nito 335
10.1 Geometra tetradrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
10.2 Slidos elsticos con modelos de elemento nito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
10.3 Distorsin de rigidez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
10.4 Integracin respecto del tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
10.5 Acoplamiento de la malla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
10.6 El mtodo de elemento nito en la literatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
11 Dinmica de uidos computacional 371
11.1 Olas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
11.2 Movimiento de uidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
11.3 Hidrodinmica de partculas alisadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
IV DETECCIN DE COLISIONES 397
12 Deteccin de colisiones en fase amplia 401
12.1 Los cuatro principios de los algoritmos dinmicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
12.2 Bsqueda exhaustiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
12.3 Barrido y poda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
12.4 Tablas condensadoras jerrquicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
12.5 Uso del principio de la cinemtica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
13 Introduccin a la deteccin de colisiones en fase angosta 433
14 Determinacin de contacto 437
14.1 Regiones, normales y planos de contacto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
14.2 Un algoritmo geomtrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
14.3 Un algoritmo de rastreo de contacto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
15 Jerarquas de volumen limitante 451
15.1 Travesa en tndem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
15.2 Actualizaciones de coordenadas espaciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
15.3 Jerarquas de volmenes limitantes de aproximacin e hbridas . . . . . . . . . . . . . . . . . . . . . . . . 462
15.4 Eciencia y complejidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
15.5 Mtodos de construccin de jerarqua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
15.6 Volumen limitante mnimo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
viii CONTENIDO
15.7 Manejo de objetos deformables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
15.8 Determinacin de contacto con BVH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
15.9 Trabajos anteriores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
16 Algoritmos basados en propiedades 525
16.1 CULLIDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
16.2 Condensacin espacial ptima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
16.3 Algoritmo de Voronoi-Clip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
16.4 Algoritmos de bsqueda repetitiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
17 Algoritmos basados en volumen 557
17.1 Mapas de distancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
17.2 Imagen estraticada en profundidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
17.3 Trabajos previos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
V MATEMTICAS Y FSICA PARA ANIMACIN 567
18 Vectores, matrices y cuaternios 571
18.1 Vectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
18.2 Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
18.3 Campos escalares y vectoriales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
18.4 Derivadas funcionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597
18.5 Cuaternios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600
19 Resolucin de sistemas de ecuaciones lineales 605
19.1 Eliminacin de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
19.2 Descomposicin LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608
19.3 Descomposicin de un valor singular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
19.4 Mnimos cuadrados lineales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612
19.5 Los mtodos de Jacobi y Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
19.6 Sobrerrelajacin sucesiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616
19.7 Criterios de parada para programas iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
19.8 Mtodo de descenso por gradiente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621
19.9 Mtodo de gradiente conjugado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624
19.10 El problema de complementariedad lineal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629
20 Expansin de Taylor y aproximaciones de derivadas 635
20.1 Series de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
20.2 Diferencias nitas por aproximaciones directas, inversas y centrales . . . . . . . . . . . . . . . . . . . . 637
FSICA PARA VIDEOJUEGOS ix
21 Clculo de variaciones 641
21.1 Derivacin de la ecuacin de Euler-Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
21.2 Ecuacin para muchas derivadas independientes de orden superior
de una variable dependiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643
21.3 Ecuacin para muchas variables dependientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
22 Mecnica clsica bsica 647
22.1 Ecuaciones de Newton-Euler del movimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
22.2 Ley de friccin de Coulomb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667
22.3 Trabajo y energa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670
22.4 El oscilador armnico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
22.5 Formulacin de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682
22.6 Principio de trabajo virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688
22.7 Esfuerzo y deformacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
23 Ecuaciones diferenciales e integracin numrica 695
23.1 Ecuaciones diferenciales ordinarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695
23.2 Ecuaciones diferenciales parciales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
23.3 Mtodos de conjuntos de nivel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
24 Teora abierta de B-spline (curva) no uniforme 727
24.1 Funciones de base de B-spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727
24.2 La B-spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738
24.3 Interpolacin global . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741
24.4 Descomposicin de curva cbica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
24.5 Tabla acumulada de longitud de arco. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
24.6 La B-spline no uniforme cbica regular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757
24.7 El algoritmo de Boor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762
24.8 Insercin repetida de nudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
25 Software: OpenTissue 769
25.1 Antecedentes histricos de OpenTissue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
25.2 Obtencin del OpenTissue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770
25.3 Uso de OpenTissue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771
26 Notacin, unidades y constantes fsicas 777
Bibliografa 783
ndice 803
1
Introduccin
Una meta a largo plazo en las grcas computacionales es aumentar el realismo y la credibilidad en
animaciones y pelculas generadas en computadora. Entre los trabajos originales destacan los de Armstrong
et al. (1985), Terzopoulos et al. (1987), Moore et al. (1988), Hahn (1988), Barzel et al. (1988), Platt et al.
(1988), Baraff (1989) y Barsky et al. (1991). La creencia general es que al mejorar y modernizar la creacin
de imgenes, la falta de realismo fsico y credibilidad ser ms obvia y en consecuencia ms molesta para
el observador comn. El argumento principal para lograr la meta de ms realismo ha sido usar la fsica
para modelar el comportamiento y el movimiento de los modelos en computadora. Hoy esos esfuerzos han
culminado en lo que se suele llamar animacin o modelado basado en la fsica.
La animacin basada en fsica es un campo altamente interdisciplinario que se basa en teoras de la ingeniera
(Zienkiewicz et al., 2000; Stewart et al., 1996; Pfeiffer et al., 1996b; Enright et al., 2002), de la fsica (Baraff,
2001) y de las matemticas. Algunos de los modelos de simulacin ms notables se basan en la robtica (Craig,
1986; Featherstone, 1998) y en la mecnica de los slidos (House et al., 2000; Teran et al., 2003). Hasta donde
sabemos, el campo de la animacin basado en la fsica fue bautizado en un curso de la Association for Computing
Machinerys Special Interest Group on Computer Graphics (ACM SIGGRAPH) en 1987, en la conferencia Temas de
modelado basado en la fsica organizado por Alan H. Barr. En aos recientes, el nfasis hacia la animacin basada
en fsica sobre algoritmos computacionalmente ecientes ha sembrado un campo nuevo: la simulacin plausible
(Barzel et al., 1996).
En una segmentacin en la produccin de una pelcula, en general se cree que el uso de la fsica inhibe la
creatividad y la esttica de un animador. La razn es bastante obvia: es difcil conar en un modelo fsico y
al mismo tiempo usar todos los aspectos de los principios de animacin (Lassiter, 1987; Frank et al., 1995).
Si bien algunos principios se concentran en la implementacin de la realidad fsica, como aplastar y estirar,
tiempos y movimientos y desacelerar y acelerar, la mayor parte se reeren a exagerar el movimiento para
entretener a la audiencia y mantener su atencin. Por lo anterior, los animadores preeren movimientos
surrealistas en lugar del entretenimiento, y no se tientan el corazn para dotar a sus personajes de poderes
sobrenaturales. Es as que siguen un mtodo apoltronado de slo representar lo que sea visible, siempre que
el movimiento y la escena muestren una historia interesante.
En este libro no se exponen los principios de la animacin, y tampoco se intenta calicar o cuanticar la
credibilidad o plausibilidad de los mtodos y algoritmos presentados. No le conciernen el proceso de dibujar
o los sistemas de animacin. En su lugar, est dedicado ante todo a presentar al lector un fundamento rme y
slido para comprender cmo se deducen los modelos matemticos a partir de principios fsicos y matemticos;
en segundo lugar, est destinado a estudiar la forma en que se resuelven los modelos matemticos en forma
eciente, rme y estable en una computadora. Como tal, esta obra presenta al lector los campos de la fsica,
matemticas y anlisis numrico; sin embargo, no sustituye a los libros de texto en esos campos.
1
2 CAPTULO 1. Introduccin
1.1 Modelo de grcas computacionales
Una perspectiva de la animacin basada en la fsica consiste en muchas leyes tericas y mtodos de fsica y
matemticas, con algo de geometra adicionada, y todo esto se mezcla para obtener un modelo matemtico
del mundo real que, una vez obtenido, se puede transformar en un modelo numrico que a su vez se programa
en una computadora. Entonces el programa puede hacer predicciones sobre el mundo real que se usan
para estimar dnde cabe esperar que se muevan los objetos (cinemtica y dinmica directas), o bien para
calcular la forma en que deben manejarse para obtener cierto movimiento deseado (cinemtica y dinmica de
retroceso). Esta concepcin del mundo se esquematiza en la gura 1.1 con las echas en blanco, y es tpica
de las disciplinas de ingeniera. En este campo, una meta frecuente es hacer predicciones muy precisas sobre
el mundo real a largo plazo, es decir, asegurar la estabilidad de un puente o pronosticar la eciencia de un
sistema de calentamiento.
Usando como ejemplo un simulador quirrgico, describiremos los pasos tpicos indicados en la gura
1.1: el punto inicial es casi siempre una especie de paso de adquisicin y modelado de datos, en el que se
escanea a un paciente, y la imagen tridimensional que resulta se segmenta en objetos anatmicos importantes,
que se representan como formas geomtricas. Esos objetos se amplican entonces con leyes fsicas relevantes,
con frecuencia en forma de un sistema de energa. Para hacer una simulacin fsica, el sistema de energa se
analiza con mtodos o herramientas matemticas como clculo de variaciones, y el sistema se convierte en
un conjunto de ecuaciones diferenciales parciales. Reiteradamente, el modelo matemtico es un conjunto de
ecuaciones diferenciales parciales junto con una descripcin detallada de la geometra que funciona como
Mtodos
matemticos
Leyes fsicas
Modelo
matemtico
Modelo de grca
en computadora
Modelo
numrico
Programa
Prediccin Visualizacin
Forma
geomtrica
Adquisicin
de datos
Figura 1.1 Perspectiva esquemtica de la animacin y simulacin basada en la fsica. Las echas blancas son tpicas
de las disciplinas de ingeniera, mientras que las echas negras son pasos adicionales usuales que se toman en grcas
computacionales.
FSICA PARA VIDEOJUEGOS 3
condiciones en la frontera. Para implementar el modelo matemtico en una computadora, a menudo se discretizan
las ecuaciones, es decir, aplicando el mtodo adecuado de diferencias nitas, que a su vez se programa en C++
o en algn otro lenguaje similar de programacin. Por ltimo, el simulador puede correr y usarse para hacer
predicciones sobre el futuro, es decir, sobre qu pasar si ciertas estructuras se cambian o eliminan.
No obstante, aun con los impresionantes logros en las disciplinas fsicas, matemticas y de ingeniera,
con frecuencia sucede que ni el modelo matemtico ni las tcnicas numricas son adecuados para la
animacin en computadora. sta favorece el gran detalle visual, el alto rendimiento y el poco consumo de
memoria. En contraste, los mtodos de ingeniera con frecuencia no se interesan en los detalles visuales
momentneos, ya que su objetivo principal muchas veces es predecir el comportamiento a largo plazo
y/o la gran precisin. En consecuencia, a menudo el tiempo de cmputo y el consumo de memoria
son altos, ya que si la tarea es predecir si un puente durar 100 aos, entonces se justica hacer que
decenas o cientos de computadoras resuelvan el problema en varios das o semanas. Sin embargo, en la
animacin por computadora ms bien podramos visualizar la cada de un puente, con atractivo visual,
en una computadora laptop en tiempo real. Debido a esas diferencias entre las grcas de ingeniera
y en computadora, los cientcos informticos modican los modelos matemticos para favorecer los
detalles visuales y escogen tcnicas numricas que propicien la rapidez, fortaleza y estabilidad, ms que
la exactitud y la convergencia. Estas alternativas pueden llamarse modelo de grcas computacionales.
Resumiendo, los objetivos de la animacin basada en fsica consisten en modelar el mundo real, pero a
diferencia de las disciplinas de ingeniera, los mtodos de grcas en computadora favorecen el atractivo
visual y los pocos recursos computacionales.
1.2 Taxonoma de los mtodos de animacin basada en la fsica
Al mximo nivel, el campo de la animacin y la simulacin basada en la fsica se pueden subdividir en primer
lugar en dos grandes grupos:
Cinemtica. Estudio del movimiento sin tener en cuenta masas o fuerzas.
Dinmica. Estudio del movimiento teniendo en cuenta masas y fuerzas.
El asunto no termina all, porque la cinemtica y la dinmica tienen dos subgrupos:
Reversa (o inversa). Estudio del movimiento conociendo los puntos inicial y nal.
Directo (o avance). Estudio del movimiento dado slo en el punto de partida.
En el primer subgrupo, el caso tpico es cuando se conoce adnde ir, pero se necesita saber cmo hacerlo.
Por ejemplo, uno podra conocer la posicin nal de un marco de herramientas de un manipulador robtico
sin saber qu fuerzas y pares aplicar a los actuadores para llegar al destino nal. En otras palabras, la
cinemtica y la dinmica inversas calculan el movimiento en reversa. La cinemtica y dinmica directas
hacen exactamente lo contrario. Para el mismo ejemplo, lo que se conoce es la posicin inicial del marco de
herramientas, as como las fuerzas y pares que desarrollan los actuadores. Entonces, la meta es predecir el
destino nal. En la gura 1.2 se muestra la diferencia entre cinemtica/dinmica de avance y reversa.
Hay numerosas tcnicas y mtodos en la animacin y simulacin basadas en fsica, y es probable que
el lector ya haya odo hablar de ellos. En la tabla 1.1 hemos tratado de clasicar algunas de las tcnicas y
mtodos ms populares, de acuerdo con los cuatro subgrupos presentados arriba.
4 CAPTULO 1. Introduccin
Reversa Avance
Cinemtica Descenso cclico en coordenadas
Metodo jacobiano
Animacin basada en tiras
Animacin de marco clave (interpolacin)
Soluciones de forma cerrada
Deformacin de forma libre
Dinmica Metodo recursivo de Newton Euler
Problemas de optimizacin
Metodo de Featherstone (metodo de cuerpo
articulado)
Metodo del cuerpo rgido compuesto
Sistemas de partculas, sistemas masa-resorte
Metodo de elemento fnito
Simulacin basada en restriccin
Tabla 1.1 Mtodos comunes y su clasicacin en cinemtica/dinmica directa y en reversa.
Figura 1.2 Ejemplo que muestra la diferencia entre cinemtica/dinmica directa y en reversa. En el caso del movimiento
inverso, se dan las posiciones inicial y nal del sujetador robtico, mientras que en el caso del movimiento directo, slo
se conoce la posicin inicial.
Directo
Reversa
Tiempo
FSICA PARA VIDEOJUEGOS 5
1.3 Cmputo cientco vs grcas computacionales en la prctica
El campo de cmputo cientco domina los mtodos de ingeniera. Al conocer algunas aplicaciones, se aprecia
que la diversidad es grande. A continuacin se describen ejemplos de simuladores actuales para proyectos
reales. Ya que los autores son daneses, la mayor parte de los ejemplos son daneses; sin embargo, vemos que
la variedad de problemas y sus demandas computacionales son internacionales.
Tneles de viento numricos en RISOE
El tnel de viento numrico en RISOE (www.risoe.dk/vea-aed/numwind) usa un generador
de malla hiperblica para dominios tanto bi como tridimensionales. La ecuacin de Navier-Stokes se
resuelve usando el programa EllipSys2D/3D, que es un cdigo de volumen nito incompresible. El
clculo de un rotor de molino de viento estacionario toma unas 50 CPU horas. Al usar 14 CPU (3.2 GHz
Pentium M, RAM de 2 GB) en grupo, la simulacin tarda unas cuatro horas. Los clculos no estacionarios
tardan de tres a cuatro veces ms (Johansen, 2005).
Deformacin de materiales a escala atmica
En materiales a escala atmica, las simulaciones fsicas de deformacin plstica en cobre nanocristali-
no se hacen en un grupo (Niheim, 2.1 Teraops) de PC ordinarias. Una simulacin comprende
100 nodos que corren en paralelo y con frecuencia tarda semanas en completarse (www.dcsc.dk).
En qumica cuntica, los problemas contienen a menudo 10
9
variables y las simulaciones pueden durar
hasta 10 das o ms (Rettrup, 2005).
Mecnica de uidos computacional
La mecnica de uidos computacional se aplica a una gran variedad de problemas de ujo. En un caso
tpico, los ujos tridimensionales no estacionarios requieren 10 100 10
6
nodos de red y usan
hasta 1 000 CPU horas por simulacin (www.dcsc.dk). Tambin se simula la mecnica de slidos
(www.dcsc.sdu.dk), pero con frecuencia no se visualiza (Vinter, 2005).
Astrofsica computacional
La astrofsica computacional (www.nbi.ku.dk/side22730.htm) consiste en simular la for-
macin de galaxias, estrellas y planetas. Algunos mtodos que se usan son hidrodinmica suavizada de
partculas y renamiento adaptativo acoplado. Con frecuencia, los clculos tardan semanas o meses
en completarse (Nordlund, 2005).
Reportes meteorolgicos
Los reportes meteorolgicos se simulan y guardan peridicamente en disco en el DMI (www.dmi.
dk). La informacin se resguarda cada tres horas. En 2.5 nodos de red se calculan reportes de 48 horas
usando el tamao de incremento de tiempo de dos minutos. La cantidad total de clculos es del orden
de 10
12
y se resuelven en supercomputadoras muy grandes (Srensen, 2005).
En esta breve resea de computacin cientca es evidente que las simulaciones se basan en grandes
supercomputadoras, con frecuencia agrupadas. La cantidad de datos es astronmica y los tiempos de clculo
van desde minutos a horas, das o semanas, y no son raros los que tardan meses. La visualizacin va desde
echas sencillas que ilustran campos de ujo hasta visualizacin cientca bastante avanzada.
6 CAPTULO 1. Introduccin
Algo importante a destacar es que con frecuencia el concepto de tiempo real no es un trmino muy
til en el cmputo cientco. Por ejemplo, el tiempo simulado en qumica es del orden de picosegundos,
pero el clculo tarda das en terminarse. La idea principal de las simulaciones es, a menudo, ver un proceso
qumico en cmara lenta para observar qu sucede. Eso no se puede hacer en el laboratorio. En contraste, las
simulaciones grcas astrofsicas y ocenicas son demasiado lentas y en consecuencia se realizan a mayores
velocidades. En simulaciones de ujo marino, se representa un par de siglos en un da. En conclusin, en
cmputo cientco los resultados se obtienen en lapsos que van de 24 horas a 30 das (Vinter, 2005).
En cuanto a la animacin basada en fsica, el panorama es un poco diferente, desde la perspectiva del
cmputo grco.
Fenmenos de uidos
La simulacin de humo para representar fenmenos en gran escala (Rasmussen et al., 2003) requiere
el uso de medio milln de partculas, se tarda de 2 a 10 segundos por cuadro y el dibujo toma de 5 a
10 minutos por cuadro (2.2 GHz, Pentium 4). En McNamara et al. (2003), el control clave de cuadros
en simulaciones de humo tarda de 2 a 24 horas en ejecutarse en un procesador Pentium 4 de 2 GHz.
La simulacin de humo dirigido al objetivo (Fattal et al., 2004) tarda 50 segundos en un procesador
Pentium 4 de 2.4 GHz en 2D, en una red de 256
2
para un segundo de animacin; en 3D, en una red de
128
3
, toma 35 minutos.
Sistemas de partculas
En Feldman et al. (2003), las explosiones con partculas suspendidas son animadas. El tiempo de
simulacin va de 4 a 6 segundos por cuadro en un Pentium 4 de 3 GHz. Incluyendo los tiempos
de creacin de imagen, un segundo simulado es del orden de minutos. La animacin de uidos
viscoelsticos (Goktekin et al., 2004) con una red de 40
3
se tarda media hora por segundo de animacin
en un Pentium 4 de 3 GHz. Para la animacin de interaccin bidireccional entre objetos rgidos y uidos
(Carlson et al., 2004) usando una red de 64 68 84 con un Pentium 4 de 3 GHz y 1 GB de RAM,
se necesitan 401 pasos de simulacin por cada segundo de animacin, con un tiempo promedio de CPU
por simulacin de 27.5 segundos.
Animacin de telas
La simulacin de telas sin penetracin (Bridson et al., 2002) en un trozo de 150 150 nodos corre a
dos minutos por cuadro en un Pentium 3 de 1.2 GHz. Para desenredar telas (Baraff et al., 2003b) en un
modelo con 14 K vrtices, el costo adicional es 0.5 de segundos de tiempo de simulacin por cuadro en
un Pentium 4 de 2 GHz. El cambio de topologa de malla (Molino et al., 2004) durante la simulacin,
con 1 K tringulos, se tarda de 5 a 20 minutos por cuadro, y con 380 K tetraedros toma 20 minutos.
La simulacin de cuerpo rgido apilado (Guendelman et al., 2003) con simulaciones de 500 a 1 000
objetos se tarda, en promedio, de 3 a 7 minutos por cuadro.
Videojuegos
Las consolas de juegos, como Play Station 2 (www.playstation.com) slo tienen 32 MB de
RAM y 6.2 GFLOPS, y las PC domsticas normales son en su mayor parte inferiores a las que usan
los investigadores de grcas computarizadas. Esto ha requerido cierto razonamiento creativo en el
desarrollo de videojuegos para conseguir los requisitos de desempeo. Adems, debe haber tiempo
aparte para otras tareas en aplicaciones como los videojuegos. Por ejemplo, en Hitman de IO-Interactive,
slo se usa de 5 a 10% del tiempo de cuadro para simulacin fsica (Jakobsen, 2005). En el futuro
esas limitaciones de hardware pueden cambiar. Por ejemplo, las GPU recientes no tienen problemas
FSICA PARA VIDEOJUEGOS 7
de latencia y seran posibles 60 GFLOPS (www.nvidia.com) en ellas; tambin las PPU (www.ageia.
com) parecen ser una tecnologa emergente. Por ltimo, los chips celulares (www.ibm.com/news/
us/en/2005/02/2005_02_08.html) tambin prometen.
Despus de conocer esta pequea encuesta de la literatura sobre la animacin basada en fsica sobre grcas
computacionales, es evidente que se usan tiempos de cuadro que van del orden de segundos a horas, corriendo
en PC solas. En conclusin, el trabajo de diseo para grcas computacionales y cmputo cientco requiere
tiempos de terminacin razonablemente bajos.
1.4 Puntos de estudio en el futuro
La animacin basada en fsica es un campo grande y crece rpidamente. Cada ao se presentan nuevas
tcnicas para animar fenmenos nuevos y los mtodos existentes mejoran en velocidad, exactitud y detalle
visual. No es posible explicar todo en un libro, y no se necesita decir que el mantenerse actualizado es una
actividad importante de todo animador basado en fsica. Un buen lugar para comenzar a conocer las normas
de la industria son los motores fsicos, muchos de los cuales se muestran en la tabla 1.2.
En seguida mencionamos brevemente algunos tpicos que nos parecen interesantes, pero no los expon-
dremos en este libro por limitaciones de espacio y por razones pedaggicas.
Mtodos recursivos para mecnica con juntas
Los mtodos recursivos para mecnica con juntas tambin se llaman mtodos de coordenada mnima,
y en la literatura se explica extensamente la teora; vase, por ejemplo, Featherstone (1998).
Programacin matemtica
La programacin matemtica es, entre otras cosas, el estudio de problemas de complementariedad.
La historia de esta disciplina comienza en la dcada de 1940. Es un campo gigantesco y por s mismo
merece varios libros de texto. En este libro recomendamos una biblioteca existente, como la de Path
(2005) para un curso, o consultar, por ejemplo, Cottle et al. (1992) y Murty (1988).
Objetos deformables con materiales de propiedades no lineales anisotrpicas
Las deformaciones no lineales y grandes siguen siendo un problema en las investigaciones actuales y
no son algo que creemos que se pueda incluir en un libro de texto introductorio.
Corte y fractura de objetos deformables
En fecha reciente se han publicado trabajos sobre fractura, pero el corte y la fractura estn justo en la
frontera de las aplicaciones actuales en tiempo real.
Mtodos de conjunto de nivel de partculas y estructuras adaptativas de datos para simulacin de agua
Hemos optado por enfocarnos en el mtodo ms clsico y presentamos al lector una buena comprensin
de las bases. No se le debe dicultar el proseguir con las publicaciones recientes; vase, por ejemplo,
Osher et al. (2003).
Control en animaciones basadas en fsica
En fecha reciente se ha tratado de incluir el control del animador usando mtodos de dinmica en reversa.
8 CAPTULO 1. Introduccin
Nombre Notas
DynaMechs S. McMillan inici su desarrollo en 1991 (http://dynamechs.sourceforge.net)
Renderware Physics Unidad comercial de Criterion Software establecida en 1993 (www.renderware.
com/physics.asp)
Havok Fundado en 1998 (www.havok.com)
Meqon Comenz como proyecto universitario en 1999; D. Gustafsson y M. Lysen fundaron la
compaa en 2002 (www.meqon.com)
Ipion Comprado por Havok en junio de 2000 (www.ipion.com)
Open Dynamics Engine Parece haberse iniciado alrededor de 2000 a 2001 por R. Smith, anterior empleado de
MathEngine (www.ode.org)
Novodex Comenz en la primavera de 2002 con A. Moravansky y M. Mller (www.novodex.
com)
Tokamak D. Lam es el autor original de Tokamak, y parece haber iniciado en 2003 (www.
tokamakphysics.com)
Newton Game Dynamics Al parecer inici en 2003 (www.physicsengine.com/)
Karma Desarrollado por MathEngine, fue adquirido por Criterion Software en julio de 2003
(www.mathengine.com)
Vortex Desarrollado por CMLabs (www.cm-labs.com)
Free Cloth D. Pritchard parece haberlo iniciado en 2002 (sourceforge.net/projects/
freecloth)
OpenTissue K. Erleben, H. Dohlmann, J. Sporring y K. Henriksen lo iniciaron en noviembre de 2001
(www.opentissue.org)
AGEIA Empresa fundada en 2002; en marzo de 2005 AGEIA anuncia una nueva clase de unidad
procesadora de fsica (PPU; physics processing unit), PhysX (www.ageia.com)
Tabla 1.2 Lista de motores fsicos comerciales y pblicos disponibles.
FSICA PARA VIDEOJUEGOS 9
Hemos omitido toda teora y mtodos relacionados con cmo controlar y manipular una animacin,
porque no consideramos que sean parte de un motor fsico de bajo nivel.
Deteccin continua de colisiones
Ciertos problemas tediosos en la animacin son los efectos tnel y de sobrecorreccin. Un remedio
para esos problemas es la deteccin continua de colisiones, que promete generar un mejor punto de
contacto y determinar reas de contacto en simulaciones dinmicas. El campo es bastante nuevo, pero
muy prometedor. Sin embargo, opinamos que todava no hay una norma rmemente establecida, por lo
que hemos omitido este material. Los lectores interesados pueden consultar Redon et al. (2002), Redon
(2004a), Redon (2004b) y Redon et al. (2004a).
Mtodos simplex para deteccin de colisiones
Los mtodos simplex (plural de simple) para deteccin de colisiones se basan en el concepto matemtico
de un conjunto de variables linealmente independientes. De acuerdo con nuestra experiencia, esos
mtodos son de difcil acceso para los alumnos y no son esenciales, lo cual es la principal razn de
porqu los hemos omitido. Unas buenas referencias son Bergen (2003b), Bergen (2001) y Bergen (1999).
1.5 Gua para el lector
Habiendo enseado grcas y animacin por computadora durante varios aos, hemos visto que carecemos
de una introduccin completa a la animacin basada en la fsica. En consecuencia, primero comenzamos
a escribir notas sobre los mtodos matemticos necesarios para los simuladores, y despus notas para
describir los diversos mtodos de animacin. Por eso los destinatarios principales de este libro son
universitarios y profesionistas de ciencia informtica. La preparacin de nuestros alumnos suele versar
sobre un buen conocimiento del arte de la programacin, introduccin a grcas por computadora y lo
que llamamos madurez matemtica. Para nosotros, madurez matemtica signica que los alumnos no
necesariamente tienen conocimientos matemticos rigurosos, pero les gusta aprender nuevas tcnicas en
esta disciplina. Por tanto, nuestro mtodo es prctico: tratamos de ensear teoras como las que presenta
este libro, y subrayamos que los estudiantes deben poder implementar las teoras en simuladores en trabajo
real. Esperamos que esta obra reeje esas metas, en su caso, por los numerosos ejemplos de pseudocdigo.
Casi todos los algoritmos que se describen se han implementado en el proyecto adjunto de cdigo abierto
(OpenTissue, 2005).
El libro contiene cinco partes que reejan la diversidad del campo de la animacin basada en la fsica.
Por consiguiente, se puede leer de las siguientes diversas maneras.
Geometra del movimiento
Para el lector interesado en la geometra del movimiento y la cinemtica, y para quienes desean tener
control total de las pautas de movimiento, sugerimos la parte I, que describe el diseo de parmetros
de movimiento, independientemente de la fsica del mundo real.
De partculas a cuerpos rgidos
El punto de partida ms comn en la animacin basada en la fsica son los sistemas de partculas
(captulo 8), seguido por el estudio de animacin de cuerpos rgidos en la parte II; despus por una
investigacin avanzada en objetos deformables en la parte III, para concluir con un estudio de dinmica
de uidos computacional en el captulo 11.
10 CAPTULO 1. Introduccin
Dinmica de uidos computacional
Algunos lectores encontrarn que la dinmica de uidos computacional es sencilla y optarn por leer
el captulo 8, seguido por el estudio de este tema en el captulo 11 y los modelos de continuo con
diferencias nitas en el captulo 9. De acuerdo con nuestra experiencia, el anlisis de elemento nito en
el captulo 10 es el gran reto para los novatos.
Deteccin de colisiones
La deteccin de colisiones se explica en la parte IV y con frecuencia se aborda en paralelo con los temas
anteriores.
Compendio matemtico y fsico
La parte V est escrita como un apndice muy amplio, y contiene gran parte de la fsica y las matemticas
necesarias para comprender las teoras en este libro.
Feliz lectura!
PARTE I
La cinemtica
FSICA PARA VIDEOJUEGOS 13
La cinemtica es el estudio del movimiento de las partes sin considerar masas ni fuerzas. En consecuencia,
se pueden ignorar las leyes de Newton. La aplicacin principal de los mtodos cinemticos es la animacin
precongurada, donde no se requiere simulacin fsica, que es demasiado compleja para ocuparse de ella o
no se apega a los principios de animacin (Frank et al., 1995; Lassiter, 1987). Muchas pelculas animadas
por computadora usan mucho la cinemtica para el movimiento; gran parte de la teora puede considerarse
as como una extensin natural de las tcnicas de paro-movimiento desarrolladas por Disney a principios del
siglo XX. Este campo se divide en cinemtica directa y cinemtica inversa, dependiendo de si se conoce o no
la conguracin nal.
La cinemtica directa (en avance) se caracteriza por el movimiento que ordena el usuario o alguna
funcin. Requiere mucho trabajo manual; sin embargo, se usa mucho en la produccin flmica, donde los
animadores especican cada parmetro como una funcin del tiempo. Con frecuencia, ellos mismos hacen el
movimiento de las guras que van a animar. Para reducir el tiempo de produccin se suele aplicar una tcnica
de visin computarizada llamada captura del movimiento.
La captura del movimiento es el proceso de rastrear puntos jados a un actor mediante video, reconstru-
yendo el lugar de los puntos en tres dimensiones y usando la reconstruccin como entrada para la cinemtica
directa. Con este mtodo los animadores pueden crear movimientos asombrosamente realistas que obedecen
las leyes de la fsica. La captura de movimiento es una gran herramienta en la produccin cinematogrca,
donde se usa el movimiento reconstruido para especicar los parmetros de un movimiento especco. Tam-
bin se puede utilizar como instrumento para crear nuevas secuencias de movimiento para videojuegos. En
este caso, los datos de captura de movimiento se consideran una muestra discreta de movimiento fsico y se
obtiene la nueva secuencia ajustando un modelo continuo a los datos discretos. Una de esas tcnicas se llama
mezcla de movimiento o mezcla de animacin. Las tcnicas de mezclado se encuentran a menudo en motores
de juegos como los que se mencionan en www.devmaster.net/. Hay tres problemas bsicos cuando se
mezcla el movimiento.
Distorsin de tiempo-movimiento. Cmo adaptar las secuencias de movimiento para que coincidan en el
tiempo. En otras palabras, se debe determinar qu cuadro en un movimiento corresponde a qu cuadro
en otro movimiento.
Alineacin del movimiento. Un movimiento puede ser hacia la izquierda y el otro hacia la derecha. Entonces,
qu posicin debe tener la mezcla de movimientos?
Igualacin de restriccin del movimiento. Si se desea combinar un movimiento de correr y caminar, se
deben hacer coincidir cuidadosamente los cuadros donde los pies correspondientes tocan el suelo, para
no tener un resultado de deslizamiento o otacin.
La mezcla de movimiento se usa en videojuegos para crear transiciones entre datos de movimiento capturado
y se ve en muchos juegos con tirador en tercera persona, como Hitman

. Con frecuencia, las tcnicas son


especiales y dependen mucho de que los animadores especiquen completamente a priori las transiciones.
Las investigaciones recientes se enfocan en hacer que los movimientos se combinen en forma ms natural,
teniendo en cuenta el equilibrio de una persona.
Tambin se pueden generar los parmetros para la cinemtica directa usando programas de movimiento
(Barsky et al., 1991). En estos programas se indican parmetros de junta en forma de alguna funcin conti-
nua del tiempo, como cos(t), que genera un movimiento oscilatorio. Las funciones de movimiento se deben
disear con cuidado para el movimiento especco, como el modo de andar bpedo (Parent, 2001; cap. 6.2) o
el nado de los peces (Terzopoulos et al., 1994).
14 La cinemtica
La cinemtica inversa maneja la interpolacin de una gura desde puntos inicial y nal especicados. Se
usa tambin con frecuencia en programas de animacin como Maya

o 3DMax

. Aun para objetos simples,


como el brazo humano, casi siempre habr varias soluciones, ya que el codo se puede mover aun cuando la
mano y el hombro estn jos. Por consiguiente, un problema central en la cinemtica inversa es seleccionar
uno de varios movimientos posibles. Se busca entonces una solucin que genere un movimiento de aspecto
natural. Esto se logra adicionando restricciones extras a la cinemtica inversa o combinndola con la dinmi-
ca, por ejemplo, usando principios de energa mnima.
Por ltimo, muchas veces se combinan la cinemtica directa y la inversa en aplicaciones reales. Por ejem-
plo, se puede recurrir a la primera para producir movimientos de aspecto natural en algunos objetos, y a la se-
gunda para otros. Otro ejemplo es usar la captura de movimiento para generar estadsticas sobre movimientos
realistas y utilizar esta informacin para seleccionar soluciones a problemas cinemticos inversos. Muchos
motores fsicos admiten adems la mezcla de cinemtica directa e inversa con objetos fsicamente simulados.
Un caso tpico en una produccin cinematogrca es el manejo de la cinemtica inversa o animacin basada
en la fsica para determinar un conjunto preliminar de parmetros para un movimiento especco. Despus
se calcula con detalle la animacin, en la que se graban los parmetros de todos los objetos en cada cuadro.
A esto se le llama baking (Kai c-Alesi c et al., 2003). Despus de terminar los objetos animados, el animador
puede hacer ajustes nos en los movimientos usando el mtodo de cinemtica directa para producir anima-
ciones entretenidas. En conclusin, en las aplicaciones reales se usan las tcnicas en forma indistinta y en
combinacin, como pasos de pre y posprocesamiento.
En la parte I describiremos, en los captulos 2 y 3, los fundamentos de la cinemtica directa e inversa de
guras articuladas, y el tema del movimiento programado en el captulo 4.
15
Figuras articuladas
Este captulo describe las guras articuladas y su representacin. Esa representacin se usar despus
en animacin y simulacin de guras articuladas, las cuales se pueden concebir como un brazo robtico
o un brazo humano formados por varias barras macizas, conectadas entre s por juntas que se mueven
independientemente. Cuando se mueven todas las juntas, el movimiento general de una gura articulada
puede ser muy complejo. El objetivo de este captulo es presentar mtodos que faciliten la descripcin de
la cinemtica de guras articuladas, que despus se usar para animar y simular las guras articuladas.
El captulo est dividido en tres partes. La seccin 2.1 dene con precisin qu signica una gura ar-
ticulada y cmo se construye. Las ltimas dos secciones explican dos mtodos diferentes para describir tales
guras. La seccin 2.2 presenta un mtodo general llamado coordenadas de junta apareada, y la seccin 2.3
describe un mtodo especializado denominado Denavit-Hartenberg.
2.1 Eslabones y juntas
Una gura articulada es una construccin formada por eslabones y juntas. Los diferentes eslabones estn
conectados por juntas, que tienen cierto grado de libertad. Se puede concebir un eslabon como una barra
maciza que no puede cambiar su forma ni su longitud. Por consiguiente, se le considera un cuerpo rgido
que dene la relacin entre dos ejes de juntas vecinas (vase la gura 2.1). Una junta se puede caracterizar
como una conexin entre dos eslabones vecinos. Una junta tiene varios grados de libertad, es decir, puede
girar respecto de uno, dos o tres ejes, o trasladarse a lo largo de uno, dos o tres ejes.
Un ejemplo de gura articulada con una junta revoluta (giratoria respecto de un pasador) se ve en la
gura 2.1. Se puede decir que los eslabones y las juntas son los bloques de construccin que forman una gura
articulada, por ejemplo, los robots industriales, la maquinaria de construccin y el esqueleto humano.
Los eslabones y las juntas se numeran de 0 a N, y una gura articulada siempre comienza con la junta
0
,
que est ja en cierto sistema coordenado de base. La numeracin de los eslabones y juntas es muy impor-
tante. Una junta dentro de una gura articulada, como la junta
i
, conecta al eslabon
i1
con el eslabon
i
, estando
el eslabon
i1
ms cerca de la base.
En la gura 2.1 se aprecia una junta revoluta, es decir, que puede girar alrededor de un eje. En general,
las juntas reciben el nombre segn lo que hacen o pueden hacer:
Junta revoluta o rotativa. Junta que puede girar en torno a uno o ms ejes. La gura 2.2a muestra una junta
revoluta con un grado de libertad, pero en general sta puede tener hasta tres grados de libertad, es
decir, girar alrededor de los tres ejes coordenados.
Junta prismtica. Junta que se puede trasladar a lo largo de uno o ms ejes. La gura 2.2b muestra una junta
prismtica con un grado de libertad, pero en general puede tener hasta tres grados de libertad, es decir,
trasladarse a lo largo de los tres ejes coordenados.
2
16 CAPTULO 2. Figuras articuladas
Figura 2.1 Ejemplo de gura articulada con una junta revoluta, la cual gira respecto de un eje. Es muy importante la
numeracin de las juntas, es decir, la junta
i
conecta el eslabn
i1
con el eslabn
i
.
Figura 2.2 Ejemplos de diversas juntas que se usan para formar guras articuladas.
efector nal
eslabn
i
junta
i
junta
i1
eslabn
i1
junta
i1
base
ejes de junta
eslabn
i1
eslabn
i
junta
i
eje de junta
eslabn
i1
eslabn
i
junta
i
eje de junta
a) Junta revoluta (rotacin) b) Junta prismtica (traslacin)
FSICA PARA VIDEOJUEGOS 17
2.2 Coordenadas apareadas de junta
Como se indic antes, una gura articulada se construye con eslabones y juntas. Como cada junta puede girar
o trasladarse, el movimiento de los eslabones y juntas individuales puede ser muy complejo. Eso se debe a que
el movimiento de la junta
j
y el eslabon
j
afectan el movimiento de la junta
i
y del eslabon
i
cuando i > j. Por
ejemplo, si la junta base gira o se traslada, su movimiento afecta a todas las dems juntas y eslabones de
la gura articulada. En consecuencia, es muy complicado describir el movimiento de una gura articulada
en un sistema coordenado comn a todas las juntas y eslabones. Esa dicultad se puede superar introdu-
ciendo sistemas coordenados locales para todas las juntas y eslabones, estableciendo transformaciones
entre estos sistemas.
Se puede describir una gura articulada mediante el mtodo de coordenadas apareadas de junta (Feath-
erstone, 1998). El mtodo es muy general y se apoya en asociar tres sistemas coordenados predenidos con
cada eslabn. Para el eslabon
i
, esos sistemas coordenados reciben los nombres de marco de cuerpo (BF
i
),
marco interior (IF
i
) y marco exterior (OF
i
), y todos se asocian con el eslabon
i
. Los orgenes del marco inte-
rior y el exterior estn en sus respectivos ejes de junta. As se facilita transformar entidades entre eslabones
sucesivos, como veremos despus. Esos sistemas coordenados se ilustran en la gura 2.3 y se explican a
continuacin.
Marco del cuerpo (BF
i
) (propiamente marco de referencia del cuerpo). Es un sistema coordenado local que
se asocia con el eslabon
i
, cuya geometra se describe en este sistema. En general, el origen y los ejes
de este sistema coordenado se pueden elegir de manera arbitraria, pero para manejar con facilidad
las guras articuladas se recomienda denir al origen de BF
i
como el centro de masa del eslabon
i
.
Tambin se recomienda seleccionar un sistema de coordenadas ortogonales. Si el eslabon
i
tiene ejes
Figura 2.3 Los tres sistemas coordenados asociados con cada eslabn
i
: BF
i
, IF
i
y OF
i
. En este marco de cuerpo BF
i

se especican los orgenes y los ejes coordenados del marco interno IF
i
y el marco externo OF
i
.
eslabn
i
O
IF
i
i
IF
i
i
BF
i
j
IF
i
i
OF
i
j
OF
i
O
OF
i
j
BF
i
k
OF
i
O
BF
i
k
BF
i
k
IF
i
18 CAPTULO 2. Figuras articuladas
de simetra, se sugiere elegir algunos de ellos como ejes base para el sistema local de coordenadas
ortogonales. En lo que sigue se supondr que todos los sistemas son de este tipo.
El marco interior (IF
i
) (propiamente: marco de referencia interior). Es un sistema coordenado local que se
asocia con el eslabon
i
. En general, este sistema se asocia con la junta
i
. Tiene su origen en el eje de
sta y posee un eje paralelo a la direccin del movimiento de la junta. El origen y los ejes coordenados
de este sistema de coordenadas se especican en el marco del cuerpo.
El marco exterior (OF
i
) (propiamente: marco de referencia exterior). Es un sistema coordenado local aso-
ciado con el eslabon
i
. Usualmente, este sistema coordenado se asocia con la junta
i1
. Se origina en
el eje de la junta
i1
, y tiene un eje paralelo a la direccin de movimiento de esa junta. El origen y los
ejes coordenados de este sistema se especican en el marco del cuerpo.
El resto de esta seccin contiene subsecciones donde se deducen transformaciones entre los distintos marcos
de referencia.
1. Calcular la transformacin
BF
i
T
IF
i
del marco interior al marco del cuerpo (seccin 2.2.1).
2. Calcular la transformacin
BF
i
T
OF
i
del marco exterior al marco del cuerpo (seccin 2.2.2).
3. Calcular la transformacin
OF
i1
T
IF
i
del marco interior del eslabn
i
al marco exterior del eslabon
i1
.
4. Calcular la transformacin
(i1)
T
i
que transforma entidades del marco del cuerpo del eslabon
i
al
marco del cuerpo del eslabn
i1
.
La notacin
HASTA
T
DESDE
quiere decir que la transformacin modica una entidad indicada en el marco con
coordenadas DESDE a coordenadas en el marco HASTA.
Cuando todas las transformaciones se han derivado, es posible transformar las coordenadas de un punto
p especicado en el marco del cuerpo del eslabn
i
a coordenadas en cualquier otro marco del cuerpo, por
ejemplo, en el marco del cuerpo del eslabon
j
. Eso es muy general, pero facilita transformar las coordenadas
de un punto p especicado en cualquier marco del cuerpo del eslabon
i
al marco de referencia de coordena-
das base, el marco del cuerpo del eslabon
0
. As es posible modicar posiciones, orientaciones, veloci-dades
y aceleraciones de un punto p, especicado en cualquier marco de cuerpo, hasta el marco base, que se puede
usar como sistema coordenado comn a todas las juntas y eslabones.
2.2.1 La transformacin
BF
i
T
IF
i
En esta seccin se describe cmo hacer una transformacin (aplicacin o mapeo) del marco interior al marco
del cuerpo. Ms especcamente, el problema es: dado un punto p en coordenadas de marco interno, deter-
minar sus coordenadas en el marco del cuerpo.
Con las deniciones de eslabon
i
en la seccin 2.2, sean o
IF
i
, i
IF
i
, j
IF
i
y k
IF
i
el origen y los vectores
base del marco interno expresados en el marco del cuerpo (vase la gura 2.4).
La relacin entre el marco interno y el marco del cuerpo es la siguiente: dado un punto p (x, y, z)
T
en
el marco interno IF
i
, sus coordenadas en el marco del cuerpo, BF
i
, se pueden expresar con una rotacin an-
gular en torno a un eje u seguida por una traslacin r
IF
i
. Esta transformacin se llama
BF
i
T
IF
i
, en la que
el subndice IF
i
y el superndice BF
i
indican que las coordenadas de un punto p especicado en coordenadas
del marco interior se transforman en coordenadas del marco del cuerpo.
FSICA PARA VIDEOJUEGOS 19
En coordenadas homogneas, la transformacin del marco interior al marco del cuerpo se indica con una
matriz:
,
BF
IF IF IF IF IF
i
i i i i i
( ) ( )
IF
i
T r R u T (2.1)
Las matrices de traslacin y rotacin son las siguientes.

1
0
0
,
( )
1
( )
0 0 0 1

IF IF
i
IF
IF IF IF
IF IF IF
i
i
i i i
i i i
T
r
r
R u
i j k
T

donde el smbolo 1 representa una matriz identidad de 3 3 y los vectores i
IF
i
, j
IF
i
, k
IF
i
y 0 son vectores
columna 3 1. Con ello ambas matrices se vuelven de 4 4. La matriz de traslacin y la matriz de rotacin
son constantes y slo dependen de la posicin y orientacin relativa de los marcos interior y del cuerpo. Por
consiguiente, la transformacin resultante
BF
i
T
IF
i
tambin es constante.
2.2.2 La transformacin
BF
i
T
OF
i
En esta seccin se describe cmo hacer una transformacin del marco interior al marco del cuerpo. Ms espe-
ccamente, el problema es: dado un punto p en las coordenadas del marco exterior, determinar sus coordena-
das en el marco del cuerpo.
Recordemos las deniciones de eslabon
i
en la seccin 2.2; sean O
OF
i
, i
OF
i
, j
OF
i
y k
OF
i
el origen y los
vectores base del marco exterior, expresados en el marco del cuerpo (vase la gura 2.5). Se puede especi-
car una transformacin entre el marco exterior OF
i
y el marco del cuerpo, BF
i
, deniendo el origen y los
vectores base del marco exterior en el sistema coordenado del marco del cuerpo. Representemos por
BF
i
T
OF
i

esta transformacin, donde el subndice OF
i
y el superndice BF
i
indican que las coordenadas de un punto p
expresadas en coordenadas del marco exterior se transforman en coordenadas de marco del cuerpo.
Figura 2.4 Transformacin entre el marco interior IF
i
y el marco del cuerpo BF
i
para el eslabon
i
. El origen y los ejes
coordenados del marco interior IF
i
se especican en el marco del cuerpo BF
i
.
O
IF
i
O
OF
i
j
BF
i
r
IF
i
i
IF
i
k
IF
i
j
IF
i
i
OF
i
k
OF
i
j
OF
i
i
BF
i
k
BF
i
O
BF
i
BF
i
T
IF
i
eslabon
i
(2.2a)
(2.2b)
20 CAPTULO 2. Figuras articuladas
En coordenadas homogneas, la transformacin del marco exterior al marco del cuerpo se indica con
una matriz
,
BF
OFi OFi OFi OFi
i
( ) ( )
OF OF
i i
T T r R u (2.3)
Las matrices de traslacin y rotacin son las siguientes.

1
0
0
,
OF
i
( )
1
( )
0 0 0 1

OF
OF
OF OF OF
OF OF OF
i
i
i i i
i i i
T
T r
r
R u
i j k
siendo 1 una matriz identidad de 3 3 y los vectores i
OF
i
, j
OF
i
, k
OF
i
y 0 son vectores columna de 3 1, con
lo cual ambas matrices son 4 4. Tanto la matriz de traslacin como la matriz de rotacin son constantes, y
slo dependen de la posicin y orientacin relativa del marco interno y el marco del cuerpo. En consecuencia,
la transformacin resultante
BF
i
T
OF
i
tambin es constante.
2.2.3 La transformacin
OF
i1
T
IF
i
(d
i
,
i
,u
i
)
En las secciones anteriores se dedujeron las transformaciones de eslabn
BF
i
T
IF
i
y
BF
i
T
OF
i
(vanse las
secciones 2.2.1 y 2.2.2). Esas transformaciones son locales respecto del eslabn en cuestin, que es el esla-
bn
i
. En esta seccin se deducir una transformacin del marco interior del eslabn
i
al marco exterior del
eslabon
i1
. La representaremos como
OF
i1
T
IF
i
.
El eslabon
i1
y el eslabon
i
estn conectados por la junta
i
. La relacin entre el marco interior del eslabon
i

y el marco exterior del eslabn
i1
se dene con una transformacin conjunta, formada por una rotacin (
i
,
u
i
) y una traslacin d
i
:

OF
IF i i i i i i i i
i

1
T d u T d R u
i
( ) ( ) ( ) , , , (2.5)
donde
i
es el ngulo de rotacin, u
i
es el eje de rotacin y d
i
es el vector de traslacin (vase la gura 2.6).
Para facilitar la notacin, se omite el ndice i en las dos ecuaciones siguientes. Eso quiere decir que
i
,
O
IF
i
i
IF
i
k
IF
i
j
IF
i
r
IF
i
i
BF
i
k
BF
i
O
BF
i
j
BF
i
r
OF
i
j
OF
i
k
OF
i
O
OF
i
eslabn
i
BF
i
T
IF
i
BF
i
T
OF
i
i
OF
i
Figura 2.5 Transformacin entre el marco exterior OF
i
y el marco del cuerpo BF
i
para el eslabon
i
. El origen y los ejes
coordenados del marco exterior OF
i
se especican en el marco del cuerpo BF
i
.
(2.4a)
(2.4b)
FSICA PARA VIDEOJUEGOS 31
El vector c
i
u
i
u
i1
/ || u
i
u
i1
||
2
puede ir tanto del eje de la junta
i
al eje de la junta
i1
como en
direccin opuesta, dependiendo de las orientaciones de los vectores u
i
y u
i1
. Si c
i
va del eje de la junta
i1

al eje de la junta
i
, el producto punto (p
i1
p
i
)

c
i
es negativo y el vector eslabn a
i
tendr la orientacin
correcta.
En el otro caso, cuando el vector c
i
va del eje de la junta
i
al eje de la junta
i1
, como se ve en la gura
2.10, es obvio que la orientacin ser correcta.
2.3.1.5 Caso especial: los ejes de la junta se intersecan
Si los ejes de la junta
i
y la junta
i1
se cruzan, entonces la distancia ms corta a
i
entre ellos es igual a cero,
y el vector eslabn ser el vector nulo, que tiene cualquier direccin. En este caso, se selecciona la longitud
de eslabn a
i
0 y el vector eslabn para que sea igual al producto cruz entre los vectores de direccin u
i
y
u
i1
, entre los ejes de la junta
i
y la junta
i1
. Esto es, se seleccionan
a
u u
u u
i
i i
i i
i
a

1
1
2
0
Figura 2.9 Los ejes de la junta
i
y la junta
i1
estn contenidos en dos planos paralelos
i
y
i1
, respectivamente. La
distancia perpendicular entre los planos
i
y
i1
es igual a ||a
i
||
2
.
(2.39a)
(2.39b)
u
i
u
i1
o
i
a
i

i1
junta
i1
junta
i
o
a
i
32 CAPTULO 2. Figuras articuladas
Para este caso especial conviene seleccionar un vector eslabn extrao tal que no siga la ecuacin (2.38),
porque la longitud de eslabn a
i
es un parmetro de Denavit-Hartenberg, y el vector eslabn a
i
se usa para
asignar el marco de coordenadas, el eje x
i
del eslabon
i
. Adems, el origen o
i
y el punto o
a
i
estn denidos
en forma nica como el punto de interseccin.
2.3.1.6 Caso especial: los ejes de junta son paralelos
Si los ejes de la junta
i
y de la junta
i1
son paralelos, no hay una distancia ms corta nica entre ellos (vase
la gura 2.11). En este caso especial se calculan como sigue el vector eslabn y su longitud:
a p p p p
u
u
u
u
a
i i i i i
i
i
i
i
i
a


( ) ( )
1 1
2 2

ii
2
donde p
i
y p
i1
son puntos conocidos, y u
i
y u
i1
son vectores de direccin conocidos de los ejes de la junta
i

y la junta
i1
(vase 2.10). El origen o
i
se puede seleccionar en forma arbitraria y el punto o
a
i
se expresa, ob-
Figura 2.10 Una manera fcil de calcular la longitud de eslabn a
i
. Sea el vector c igual al producto cruz unitario entre los
vectores de direccin de los ejes, es decir, que el vector c
i
se dene como c
u u
u u
i
i i
i i

1
1
2
. Tambin, sean p
i
y p
i1
puntos
arbitrarios en los ejes, por ejemplo, los que se indican en (2.10). Entonces, la longitud de eslabn es igual al producto punto
entre el vector c
i
y el vector (p
i1
p
i
). Esto es, a
i
(p
i1
p
i
) c
i
.
(2.40a)
(2.40b)
u
i
c
i
o
i
p
i
a
i
u
i1
p
i1

i1
o
a
i
junta
i1
junta
i
p
i1


p
i
FSICA PARA VIDEOJUEGOS 33
viamente, por o
i
y a
i
. Ya que el origen o
i
se selecciona en forma arbitraria, sera mejor elegirlo de tal manera
que la mayor parte de los parmetros de Denavit-Hartenberg sean iguales a cero.
2.3.1.7 Caso especial: la primera junta
Una gura articulada debe comenzar en algn lugar, por lo que el problema consiste en saber cul es la pri-
mera junta, porque no hay un eslabn antes de ella. Entonces se introduce un eslabn base, representado por
el eslabon
0
. El marco de eslabn para eslabon
0
se puede seleccionar de forma arbitraria, pero con astucia se
hace coincidir con el marco de eslabn del eslabon
1
cuando la gura articulada est en posicin de reposo.
Entonces, la mayor parte de los parmetros de Denavit-Hartenberg sern iguales a cero.
2.3.1.8 Caso especial: la ltima junta
Una gura articulada debe terminar en algn lugar, por lo que la ltima junta constituye un problema, porque no
hay eslabn que la siga. En general, se puede seleccionar el marco de coordenadas del ltimo eslabn en forma
arbitraria, porque no hay eslabn fsico; es decir, la gura articulada termina en el eje de la junta
N
y no hay
vector de eslabn a
N
. Lo nico con que se cuenta es el eje de la junta
N
, que viene a ser el eje z
N
. Pero lo mejor
es seleccionar el origen o
N
, el vector eslabn a
N
(el eje x
N
), el desplazamiento de eslabn d
N
y el torcimiento
de eslabn
N
de tal modo que la mayor parte de los parmetros de Denavit-Hartenberg sean iguales a cero.
2.3.2 Fijacin del marco de coordenadas
Dada una gura articulada, lo primero que se debe hacer es jar un sistema coordenado a cada eslabn. A
esos sistemas coordenados se les llama marcos de eslabn. El procedimiento para jar estos marcos se indica
a continuacin
Figura 2.11 Los ejes de la junta son paralelos y entonces no hay distancia ms corta nica entre ellos.
junta
i
junta
i1
ejes de junta
u
i1
p
i1
u
i
p
i
p
i1


p
i
( ) p p
u
u
i i
i
i


1

u
u
i
i
a p p p p
u
u
u
i i i i i
i
i
i
i
u


( ) ( )
1 1

34 CAPTULO 2. Figuras articuladas


1. Identicar los ejes de junta.
2. Identicar las perpendiculares comunes a ejes de junta sucesivos.
3. Fijar marcos de coordenadas a cada eje de junta.
En seguida explicaremos estos pasos.
Primero se identican los ejes de la junta de la gura articulada (vase la gura 2.12). El eje de la junta
i

se dene por la ecuacin (2.10a), y por comodidad la repetimos a continuacin:
l p u
i i i
s s ( ) (2.41)
Despus se identica la perpendicular comn a ejes de junta vecinos; esto es, la perpendicular comn a
i
a los
ejes de la junta
i
y la junta
i1
. Tambin se identica el punto o
i
donde la perpendicular comn corta el eje de
la junta
i
. Eso se ilustra en la gura 2.13.
En la seccin 2.3.1.3 se demostr cmo calcular la distancia a
i
ms corta entre los ejes de la junta
i
y
la junta
i1
. Tambin se mostr que la distancia ms corta es a lo largo de la perpendicular entre los ejes de
la junta
i
y la junta
i1
. Por ltimo, se analiz cmo calcular el lugar de la distancia ms corta o
i
en el eje
Figura 2.12 Ejes de junta de una gura articulada. Los ejes se denen por las ecuaciones paramtricas l
i
(s) p
i
su
i
.
Imagine que los ejes de junta son los vectores u
i
.
junta
i1
junta
i
junta
i1
u
i1
p
i1
u
i1
p
i1
u
i
p
i
FSICA PARA VIDEOJUEGOS 35
de la junta
i
. Lo que aqu se necesita es el vector eslabn a
i
y su interseccin o
i
con el eje de la junta
i
[vanse
(2.31a) y (2.32a) en la seccin 2.3.1.3].
Por

ltimo, el i
esimo
marco de eslabn, que se muestra en la gura 2.14, se puede construir como sigue:
1. El origen. Sea el origen del i
esimo
marco del eslabn en el punto o
i
en el eje de la junta
i
.
2. El eje z
i
. Sea el eje z
i
a lo largo del i
esimo
eje de la junta. Esto es, sea z
i
paralelo al vector u
i
, de acuer-
do con (2.41)
z
u
u
i
i
i

2
(2.42)
3. El eje x
i
. Sea el eje x
i
a lo largo del vector eslabn a
i
de (2.32a)
x
a
a
i
i
i

2
(2.43)
4. El eje y
i
. Sea el eje y
i
tal que los vectores x
i
, y
i
y z
i
formen un sistema coordenado ortogonal derecho.
Esto es, sea y
i
denido por
y
z x
z x
i
i i
i i

2
(2.44)
Figura 2.13 Los vectores eslabn a
i
y los orgenes o
i
.
junta
i1
junta
i
junta
i1
u
i1
p
i1
u
i1
p
i1
o
i1
a
i1
u
i
p
i
o
i
a
i
36 CAPTULO 2. Figuras articuladas
2.3.3 El torcimiento
i
de eslabn
El torcimiento de eslabn es el ngulo
i
entre los ejes de la junta
i
y la junta
i1
. Ese ngulo
i
se mide en
torno al eje x
i
. Los ngulos positivos se miden en sentido contrario al de las manecillas del reloj, viendo
desde la punta del vector x
i
hacia su pie (vase la gura 2.15). En forma especca, el torcimiento
i
es el
ngulo entre los vectores de direccin de los ejes de junta u
i
y u
i1
, medido en torno al vector eslabn a
i
.
Recordemos algunas propiedades de los productos escalar y vectorial.
u u u u
u u u u
i i i i i i
i i i i




1
2
1
2
1
2 2
1
0 cos
22
0 sen
i i

que equivalen a
cos
sen

i
i i
i i
i
i
i i
i

u u
u u
u u
u
1
2
1
2
1
2
0
22
1
2
0
u
i
i


junta
i
Figura 2.14 La gura articulada y sus marcos de eslabn o
i
, x
i
, y
i
y z
i
.
(2.45a)
(2.45b)
(2.46a)
(2.46b)
junta
i1
junta
i1
u
i1
p
i1
u
i1
p
i1
z
i1
y
i1
x
i1
o
i1
z
i1
y
i1
a
i1
x
i1
o
i1
u
i
p
i
z
i
o
i
y
i
x
i
a
i
FSICA PARA VIDEOJUEGOS 37
Obsrvese que como 0 sen
i
1, y 1 cos
i
1, el ngulo
i
siempre estar en el intervalo 0
i

(vase la gura 2.16). A continuacin mostraremos cmo calcular en forma correcta el torcimiento de eslabn
i
.
Recordaremos que la funcin matemtica arctan : regresa un valor en el intervalo (, ). Sea
la funcin arctan2 :
2
denida por

arctan
arctan
arctan
( )
si 0 0
2 n d
n
d
n
n
,

d
dd
n
n
d
n

si 0 0
si 0 0 arctan
a

d
d
rrctan si 0 0
n
d
n

d

(2.47)
Esto es, si se calculara de forma ingenua el torcimiento de eslabn
i
como

i
i i
i i
i i
i i

arctan2
u u
u u
u u
u u
1
2
2
1
2
1
2
1
2
,

(2.48)
Figura 2.15 Marcos de eslabn y torcimiento
i
de eslabn. En la gura, el torcimiento de eslabn
i
es negativo.
junta
i1
junta
i
junta
i1
u
i1
p
i1
z
i1
o
i1
y
i1
x
i1
a
i1
u
i
p
i
z
i
o
i
y
i
x
i
a
i
u
i1
p
i1
z
i1
y
i1
x
i1
o
i1

i
o
a
i1
o
a
i
o
i
38 CAPTULO 2. Figuras articuladas
el resultado sera incorrecto algunas veces, porque de acuerdo con (2.46b), sen
i
siempre es positivo. Eso
quiere decir que el ngulo
i
siempre ser uno de los dos ngulos positivos,
i
(1)
o
i
(2)
, como se observa en
la gura 2.16; es decir,
i
siempre ser positivo.
En el producto vectorial (2.46b), el ngulo
i
se mide en torno al eje u
i
u
i1
. Si el vector u
i
u
i1

tiene la misma direccin que el vector eslabn a
i
, el ngulo
i
en (2.48) es correcto (vase la gura 2.17). Si
el vector u
i
u
i1
tiene direccin contraria a la del vector eslabn a
i
, entonces el ngulo
i
en (2.48) no es
correcto. El ngulo
i
correcto ser el negativo del ngulo en (2.48); vase la gura 2.18.
Para diferenciar entre los dos casos en que los vectores u
i
u
i1
y a
i
tienen direcciones iguales o
contrarias, basta ver el signo de su producto punto (u
i
u
i1
) a
i
. Esto se expresa en la siguiente ecuacin.

i
i i
i i
i i
i i

arctan2
u u
u u
u u
u u
1
2
2
1
2
1
2
1
,

22
1
1
2

si ( ) 0
arctan2
u u a
u u
u
i i i
i i
i

22
1
2
1
2
1
2
1
u
u u
u u
u u a
i
i i
i i
i i i

si ( ) 0


(2.49)
Figura 2.16 El ngulo de torcimiento
i
siempre es positivo y est en el intervalo 0
i
. Ya que 0 sen
i
1 y
1 cos
i
1, hay dos ngulos posibles,
i
( ) 1
y
i
( ) 2
, dependiendo del signo del cos
i
.
sen
i
cos
( )

i
2
cos
( )

i
1

i
( ) 2

i
( ) 1
FSICA PARA VIDEOJUEGOS 39
Figura 2.17 El ngulo de torcimiento es positivo porque la direccin del vector u
i
u
i1
tiene la misma direccin que
el vector eslabn a
i
.
Figura 2.18 El ngulo de torcimiento
i
es negativo porque la direccin del vector u
i
u
i1
tiene la direccin contraria
a la del vector eslabn a
i
.
u
i1
u
i
a
i
u
i
u
i1

i
a
i
u
i
u
i
u
i1
u
i1
TEMAS
CUBIERTOS
FSICA PARA VIDEOJUEGOS
Erleben, Sporring, Henriksen, Dohlmann
El boom de los videojuegos y la industria de las pelculas animadas contina llevando a la
comunidad grca a la insaciable bsqueda de mayor realismo, credibilidad y velocidad
de animacin. En la actualidad, para alcanzar la calidad esperada por la audiencia de
videojuegos y pelculas, los programadores necesitan comprender e implementar la
animacin basada en la fsica. Con el n de facilitar este entendimiento, la presente obra
est escrita para mostrar a los estudiantes y profesionistas la teora detrs de los modelos
matemticos y las tcnicas requeridas para la animacin. No tiene el objetivo de ensear
los principios bsicos de la animacin, sino cmo transformar la teora en habilidades
prcticas. Detalla cmo los modelos matemticos se derivan de principios fsicos y
matemticos, y explica cmo estos modelos son resueltos por medio de computadora de
forma eciente y estable.
Este excelente libro abarca todos los temas relacionados con la animacin basada en fsica,
incluyendo la deteccin de colisiones, geometra, mecnica, ecuaciones diferenciales,
matrices, cuaternios y ms. Ofrece una gran cobertura de los algoritmos de deteccin
de colisiones y un excelente repaso de los principales sistemas fsicos. Adems, contiene
numerosos ejemplos y muestra una gran cantidad de pseudocdigos para la mayora de los
algoritmos.
Esta obra es ideal para estudiantes de diseo grco, animacin digital, investigadores
de campo y profesionistas que trabajan en la industria flmica y de los videojuegos.
NOVEDADES
Gran cobertura de los algoritmos de deteccin de colisiones
Excelente repaso de las partes de los sistemas fsicos
Numerosos ejemplos a detalle de los pseudocdigos para la mayora de los algoritmos
Un sitio web donde se incluyen pseudocdigos del libro y ejercicios por captulo
BIOGRAFA DE LOS AUTORES
Kenny Erleben obtuvo su maestra en el Departamento de Ciencias Computacionales de la Universidad de
Copenhague y actualmente labora como profesor asistente. Jon Sporring tiene una maestra tambin del
Departamento de Ciencias Computacionales de la Universidad de Copenhague, donde trabaja como profesor
de ctedra. Knud Henriksen cuenta con maestra en ciencias computacionales y es profesor asociado en la
misma universidad. Henrik Dohlmann obtuvo su maestra en la misma institucin y actualmente colabora en
un proyecto entre el Departamento de Ciencias Computacionales y la Escuela de Odontologa.
CINEMTICA
Figuras articuladas,
cinemtica directa e
inversa, e interpolacin
de movimiento
ANIMACIN
MULTICUERPO
Penalizacin, impulso y
animacin multicuerpo
basada en estrs
OBJETOS
DEFORMABLES
Sistemas de partculas,
modelos continuos
con diferencias nitas,
mtodo de elemento
nito y dinmica de
uidos por computadora
DETECCIN
DE COLISIONES
Deteccin de colisiones
de fase amplia y
estrecha, determinacin
de contacto, jerarqua de
volumen limitante y
algoritmos basados en
volumen
Todas las marcas son propiedad registrada por sus respectivos autores.
Imagen de portada: Kenny Erleben. Diseo de portada: Tyler Creative
http://latinoamerica.cengage.com
ISBN-13: 978-607-481-506-1
ISBN-10: 607-481-506-2

You might also like