No habría Shrek sin matemática

Por Enrique

John von Neumann dijo una vez: “Si la gente cree que la matemática no es simple, es únicamente porque no se dan cuenta de lo complicada que es la vida”. Muchas veces he escuchado personas expresando su disgusto por la matemática. Cada quien tiene su propio motivo. Ya sea que son muy complicadas o que no sirven para nada, la mayoría no son más que prejuicios adquiridos por malas experiencias. Es cierto también que cada quien tiene gustos particulares y que no todo mundo se va a inclinar por una sola disciplina o área del conocimiento. Sin embargo, sería ideal que toda persona adquiriera una idea de la basta influencia y beneficio que la matemática puede tener en diferentes escenarios.

Hay quienes han propuesto que el universo está hecho de matemática, que la realidad misma está creada por fórmulas. Es una idea poco convencional que ha encontrado mucha oposición. Si bien nuestro universo no está hecho de matemática hay un mundo que no existiría si no fuera por ella. Totalmente diseñado y manejado por la matemática, es raro encontrar a alguien que no sepa de él. Este es el mundo donde viven personajes como Shrek y Fiona junto a cientos de otros más. Es el mundo de la animación por computadora.

Desde hace ya algunos años he estado aprendiendo este nuevo arte en mis ratos libres. Cada vez que aprendo algo nuevo no dejo de admirarme la manera en que simples fórmulas le dan vida a las escenas más hermosas. No es difícil crear una animación de estas. Lo difícil es encontrar el tiempo para hacerlo. Tampoco es difícil aprender. Yo empecé con Blender, que es un software muy amigable y muy versátil. Es open source y corre tanto en Linux como Windows. Hace un par de años tomé un curso de animación en Maya que es software propietario y no corre en Linux. Ambos paquetes son diferentes. Sin embargo, los principios detrás de la animación son los mismos. Mi relato a continuación apenas rasca la superficie del tema. No son más que observaciones del substrato matemático detrás de este fascinante mundo de la animación por computadora.

Todo proyecto consta de tres partes grandes: modelado, texturizado y animación. En el modelado uno crea los objetos de la escena. La forma de hacerlo consiste en poner juntas figuras geométricas básicas; como esferas, planos, cilindros, cubos, etc. las cuales uno deforma, alarga, subdivide, reescala hasta obtener objetos tan complejos como una cara humana. Existen dos formas de representar la figuras geométricas. La primera es por medio de NURBS (Non-Uniform Rational B-Splines), que no son más que polinomios racionales. Uno especifica ciertos puntos de control y el programa crea una fórmula que interpola la línea o superficie deseada. La otra forma de representar superficies es por medio de polígonos. En este caso uno provee la posición de cada uno de los vértices, pudiendo manipular también la posición de las aristas y las caras de los polígonos.

No está de más aclarar que el usuario no tiene que ingresar ninguna fórmula. El programa provee de un sin fin de herramientas para modelar el objeto deseado de forma óptima. En el ejemplo clásico de modelar una copa de cristal, lo primero que notamos es que la copa es un objeto de revolución. Sólo necesitamos dibujar medio perfil, especificar el eje de rotación y el programa genera la copa.

(Imágenes del manual online de Blender)

Cuando se habla de curvas, Maya tiene el concepto de niveles de continuidad los cuales son C0, continuidad posicional; C1, continuidad posicional y tangencial; C2 continuidad posicional, tangencial y de curvatura. Esto no es otra cosa más que el número de derivadas continuas que uno puede calcular de la curva dada. La idea es que la curva es más suave mientras más derivadas se le pueden calcular (hablando muy a la ligera).

Cuando se trata de superficies, existe el concepto de non-manifold mesh. En este contexto, una superficie es non-manifold cuando se intersecta a sí misma. De igual manera, esta idea tiene relación con el concepto matemático de lo que es un manifold. Un ejemplo de una superficie que es un manifold es una esfera. En general es toda superficie suave que tiene la propiedad de que cuando nos acercamos mucho a un determinado punto, la superficie se ve plana.

En el contexto del modelado de un objeto, una superficie que sea non-manifold causa problemas. El más notorio es cuando el programa calcula el vector normal a la superficie. El vector normal es de vital importacia pues es usado para los cálculos de reflexión y difusión de la luz. Para calcularlo el programa usa las coordenadas de la superficie y el producto cruz entre vectores. Si la superficie es non-manifold (se intersecta a sí misma) el vector normal no puede ser determinado de manera única en la intersección. Esto crea discontinuidades y sombreados artificiales en el objeto.

La localización de cada objeto en la escena se hace por medio de un sistema de coordenadas. Cada vez que se los objetos se trasladan o giran se aplica una transformación de coordenadas sobre los vértices que constituyen el objeto. La translación no es más que una suma de vectores y la rotación se logra a través del uso de matrices que especifican el ángulo y eje de rotación.

Afortunadamente, el usuario no necesita saber los detalles matemáticos detrás del modelo mismo. De lo contrario sería una actividad más científica que artística. El software en este caso, es una interfaz entre el mundo abstracto de la matemática y el mundo artístico de la animación.

El texturizado y la animación también tienen sus detalles, la física hace su aparición aquí. Pero para no extenderme demasiado, los dejaré para otra ocasión.

Anuncios
Esta entrada fue publicada en Ciencia y Sociedad, Divulgación de las Ciencias, Matemática y etiquetada , . Guarda el enlace permanente.

5 respuestas a No habría Shrek sin matemática

  1. Pingback: Ecuaciones animadas de ayer y hoy | GuateCiencia

  2. Pingback: No habría Shrek sin matemática, parte II « GuateCiencia

  3. litomd dijo:

    Muy interesante. Y por supuesto nos lleva a otra cuestión. Si hay un grupo de genios que ya se quebró la cabeza creando Blender, Maya, 3DMax y otros, ¿por qué hay que estudiar matemática? (o física, o cualquier otra ciencia básica). La respuesta no solo hace una diferencia entre trabajo técnico y trabajo científico-ingenieril sino que establece una de las razones por las que algunos grupos sociales avanzan más que otros.
    Si alguien aprende Blender y se convierte en “una máquina” para utilizar ese software, pero no sabe matemáticas no pasará de ser un técnico en Blender, es decir, alguien con un alto grado de entrenamiento en la utilización de una técnica particular.
    Pero si además de ser hábil con Blender sabe matemáticas, entonces el universo de problemas que puede solucionar se expande más que exponencialmente. Es lo que distingue al ingeniero o al científico del técnico.
    Por otra parte, algunos grupos sociales entiende a Blender (o a cualquier otra herramienta) como un “estado del arte”, es decir, una etapa en el proceso de avance en la solución de cierto tipo de problemas, y por lo tanto algo suceptible de mejora. Pero para mejorar hay que ir constantemente a los principios, revisarlos y replantear las soluciones y eso implica estudiar matemáticas.
    Sin matemáticas Blender pasa de ser un “estado del arte” a ser “la solución” sin posibilidades de discusión… y sin progreso.
    En conclusión: ¡A estudiar matemáticas!

  4. Enrique dijo:

    Cierto. La animación por computadora no es la única aplicación de las matemáticas sino una de las muchas que existen. Todo el confort del que disfrutamos hoy gracias a la tecnología sería imposible sin la matemática.

  5. progcarlos dijo:

    de hecho, no habrian muchas de las cosas que existen sino existieran las matematicas, no solo en la animacion hay matematica, por ejemplo mira las medicinas, los edificios, las computadoras en la cual se hacen las animaciones, los automoviles, motocicletas, la matematica es la base de toda la realidad tecnologica, sin matematica no hay tecnologia, no hay ciencia

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s