1 research outputs found
Shallow waters simulation
Dissertação de mestrado integrado em Informatics EngineeringRealistic simulation and rendering of water in real-time is a challenge within the field of computer graphics, as it
is very computationally demanding. A common simulation approach is to reduce the problem from 3D to 2D by
treating the water surface as a 2D heightfield. When simulating 2D fluids, the Shallow Water Equations (SWE)
are often employed, which work under the assumption that the water’s horizontal scale is much greater than it’s
vertical scale.
There are several methods that have been developed or adapted to model the SWE, each with its own advantages
and disadvantages. A common solution is to use grid-based methods where there is the classic approach
of solving the equations in a grid, but also the Lattice-Boltzmann Method (LBM) which originated from the field of
statistical physics. Particle based methods have also been used for modeling the SWE, namely as a variation of
the popular Smoothed-Particle Hydrodynamics (SPH) method.
This thesis presents an implementation for real-time simulation and rendering of a heightfield surface water
volume. The water’s behavior is modeled by a grid-based SWE scheme with an efficient single kernel compute
shader implementation.
When it comes to visualizing the water volume created by the simulation, there are a variety of effects that
can contribute to its realism and provide visual cues for its motion. In particular, When considering shallow water,
there are certain features that can be highlighted, such as the refraction of the ground below and corresponding
light attenuation, and the caustics patterns projected on it.
Using the state produced by the simulation, a water surface mesh is rendered, where set of visual effects are
explored. First, the water’s color is defined as a combination of reflected and transmitted light, while using a Cook-
Torrance Bidirectional Reflectance Distribution Function (BRDF) to describe the Sun’s reflection. These results
are then enhanced by data from a separate pass which provides caustics patterns and improved attenuation
computations. Lastly, small-scale details are added to the surface by applying a normal map generated using
noise.
As part of the work, a thorough evaluation of the developed application is performed, providing a showcase of
the results, insight into some of the parameters and options, and performance benchmarks.Simulação e renderização realista de água em tempo real é um desafio dentro do campo de computação gráfica,
visto que é muito computacionalmente exigente. Uma abordagem comum de simulação é de reduzir o problema
de 3D para 2D ao tratar a superfície da água como um campo de alturas 2D. Ao simular fluidos em 2D, é
frequente usar as equações de águas rasas, que funcionam sobre o pressuposto de que a escala horizontal da
água é muito maior que a sua escala vertical.
Há vários métodos que foram desenvolvidos ou adaptados para modelar as equações de águas rasas, cada
uma com as suas vantagens e desvantagens. Uma solução comum é utilizar métodos baseados em grelhas
onde existe a abordagem clássica de resolver as equações numa grelha, mas também existe o método de Lattice
Boltzmann que originou do campo de física estatística. Métodos baseados em partículas também já foram
usados para modelar as equações de águas rasas, nomeadamente como uma variação do popular método de
SPH.
Esta tese apresenta uma implementação para simulação e renderização em tempo real de um volume de
água com uma superfície de campo de alturas. O comportamento da água é modelado por um esquema de
equações de águas rasas baseado na grelha com uma implementação eficiente de um único kernel de compute
shader.
No que toca a visualizar o volume de água criado pela simulação, existe uma variedade de efeitos que podem
contribuir para o seu realismo e fornecer dicas visuais sobre o seu movimento. Ao considerar águas rasas, existem
certas características que podem ser destacadas, como a refração do terreno por baixo e correspondente
atenuação da luz, e padrões de cáusticas projetados nele.
Usando o estado produzido pela simulação, uma malha da superfície da água é renderizada, onde um conjunto
de efeitos visuais são explorados. Em primeiro lugar, a cor da água é definida como uma combinação de
luz refletida e transmitida, sendo que uma BRDF de Cook-Torrance é usada para descrever a reflexão do Sol.
Estes resultados são depois complementados com dados gerados num passo separado que fornece padrões
de cáusticas e melhora as computações de atenuação. Por fim, detalhes de pequena escala são adicionados à
superfície ao aplicar um mapa de normais gerado com ruído.
Como parte do trabalho desenvolvido, é feita uma avaliação detalhada da aplicação desenvolvida, onde é apresentada
uma demonstração dos resultados, comentários sobre alguns dos parâmetros e opções, e referências
de desempenho