Práctica 5

Simulación de Ondas con Mapas de Altura


Práctica 5. Simulación de Ondas con Mapas de Altura


En este nuevo apartado trataremos un nuevo tema dentro de los objetos deformables: las olas. Representaremos los distintos tipos de funciones que pueden definir su movimiento ondulatorio.


Para la representación de las olas en el ámbito de la simulación se hace uso de una técnica básica llamada mapas de altura. Un mapa de altura consiste en un conjunto de puntos con 3 coordenadas (x, y, z) distribuidos homogéneamente en un plano (por ejemplo, en una sección del plano XZ). Las coordenadas x, z de los puntos del plano permanecerán constantes en dicho plano (o bien pueden variar ligeramente en una zona local en torno al punto de reposo), mientras que la coordenada que representa la altura (y) estará sometida a variaciones en su valor que son producidas por una función periódica (o una combinación de varias), generalmente de tipo trigonométrico (seno, coseno).


En el vídeo se representarán los comportamientos de tres tipos distintos de ondas:


  1. Onda radial:

    La perturbación parte de un foco y se propaga en todas direcciones.

    direccional direccional-function

  2. Onda direccional:

    A diferencia de la anterior, este tipo de onda se propaga solamente en una dirección específica.

    direccional direccional-function

  3. Onda Gerstner:

    Es una modificación de la onda direccional que pretende evitar que las crestas de las ondas sean demasiado redondeadas y perfectas, puesto que las ondas direccionales dan una sensación artificial. Para ello, la onda Gerstner posee un parámetro para controlar lo puntiaguda/rizada que es la cresta de la ola. A diferencia de los anteriores tipos, en estas ondas se modifican también las coordenadas (x, z) que no representan la altura del mapa, con el objetivo de hacer que las crestas de las olas sean menos suaves. La ecuación que la describe:


    gerstner-function

    Donde Q es el parámetro que controla la grado de la pendiente que adquiere la cresta de la ola. Si su valor es nulo, la onda adquiere el movimiento propio de una función seno. En cambio, grandes valores de Q puede generar enrrollamientos de las olas sobre si mismas, un efecto nada deseado:

    q-factor

    Las olas gerstner definen un movimiento más realista debido que los vertices ya no solo definen un movimiento estrictamente vertical, sino que adquieren movimiento lateral generando trayectorias circulales como las que vemos en la siguiente imagen:


    gerstner-circles




Texturas.


Para que nuestra simulación adquiera un tono más realista hemos ligado a nuestro mapa de alturas una textura de una imagen de agua de mar. Para ello hemos aplicado los conceptos de mapeo de texturas pasando las coordenadas de la imagen a los rangos de mapeo de texturas (u,v).




Vídeo.


En el vídeo se muestra como se puede jugar con los distintos parámetros que definen la ecuación de la onda:


parameters

También se enseña como podemos combinar los tres tipos para observar su comportamiento cuando actúan sobre el mapa de alturas de manera simultánea.