Ocean Simulation
Este proyecto es una simulación de una mar a través de la formula Gerstner Waves, esta formula se aplica a cada vertice de la malla para que para simular el mar. Esta implementado en Unreal Engine 4 con materiales y funcionalidad de C++ para simular la flotación a través de las fisicas. Las olas del mar se pueden modificar a tiempo real decidiendo la altura, la distancia, la curvatura del pico de la ola, la velocidad.
Características
- Formula Gerstner Waves
- Flotación
- Material Agua
Galeria
Explicación
Para generar el mar se ha utilizado la fórmula de Gerstner Waves obtenida de Nvidia’s GPU Gems
Aplicando esta fórmula a cada vértice de la maya obtienes la simulación del mar, para ello se necesitan conocer “Q”, “Amplitude”, “Direction”, “Length”,“w”,”speed”, “φ” y “time”.Applying this formula to each vertex of the mesh you get the simulation of the sea, for this you need to know "Q", "Amplitude", "Direction", "Length", "w", "speed", "φ" and "time".
Q es el pico que forma la ola y debe estar entre 0 - 1.
Amplitude es la altura de la ola, cuando mayor número la ola es más alta.
Direction es la dirección de la ola
Length es la distancia entre las olas
w es 2/Lenght
speed es la velocidad de las olas
φ es speed * w
time el tiempo transcurrido para que se muevan las olas.
Con esto se obtiene un mar con una dirección y unas características, para simular un mar más realista hay que ir aplicando la fórmula con diferentes valores e ir sumando los resultados. Una vez se cree la forma del mar faltaría sacar las normales para que el sombreado coincida con la forma del mar. Para ello se utiliza la siguiente fórmula.
Aplicando esta fórmula a cada vértice de la maya obtienes la simulación del mar, para ello se necesitan conocer “Q”, “Amplitude”, “Direction”, “Length”,“w”,”speed”, “φ” y “time”.Applying this formula to each vertex of the mesh you get the simulation of the sea, for this you need to know "Q", "Amplitude", "Direction", "Length", "w", "speed", "φ" and "time".
Q es el pico que forma la ola y debe estar entre 0 - 1.
Amplitude es la altura de la ola, cuando mayor número la ola es más alta.
Direction es la dirección de la ola
Length es la distancia entre las olas
w es 2/Lenght
speed es la velocidad de las olas
φ es speed * w
time el tiempo transcurrido para que se muevan las olas.
Con esto se obtiene un mar con una dirección y unas características, para simular un mar más realista hay que ir aplicando la fórmula con diferentes valores e ir sumando los resultados. Una vez se cree la forma del mar faltaría sacar las normales para que el sombreado coincida con la forma del mar. Para ello se utiliza la siguiente fórmula.