Systems and methods for computer simulation of detailed waves for large-scale water simulation
Abstract
Embodiments of the present invention provide a novel method and discretization for animating water waves. The approaches disclosed combine the flexibility of a numerical approach to wave simulation with the stability and visual detail provided by a spectrum-based approach to provide Eulerian methods for simulating large-scale oceans with highly detailed wave features. A graphics processing unit stores a one-dimensional texture referred to as a wave profile buffer that stores pre-computed results at a number of discrete sample points for performing wave height evaluation. The water surface is rendered according to water height values computed using the wave profile, accounting for advection, spatial diffusion, angular diffusion, boundary reflections, and dissipation.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A processor comprising:
processing circuitry to render a fluid surface based at least in part on computing, using a pixel shader, at least one of advection, spatial diffusion, angular diffusion, boundary reflections, or dissipation corresponding to the fluid surface.
2 . The processor of claim 1 , wherein the computing is executed, at least in part, using amplitude values represented in a simulation grid.
3 . The processor of claim 2 , wherein the computing the angular diffusion is executed between neighboring directions within at least one grid cell of the simulation grid.
4 . The processor of claim 1 , wherein the computing the boundary reflections includes distributing a value of a reflected sample along one or more directions closest to a reflected direction.
5 . The processor of claim 1 , wherein the computing the dissipation includes modeling a viscosity of a fluid type corresponding to the fluid surface.
6 . The processor of claim 1 , wherein the rendering the fluid surface is further based at least in part on updated amplitude values represented in a simulation grid, wherein the updated amplitude values are determined based at least in part on the computing.
7 . The processor of claim 6 , wherein the rendering the fluid surface is further based at least in part on water height values computed using a precomputed profile buffer.
8 . The processor claim 1 , wherein the computing includes computing two or more of the advection, the spatial diffusion, the angular diffusion, the boundary reflections, or the dissipation in a single pass of the pixel shader.
9 . A system comprising:
one or more processing units; one or more memory units storing instructions thereon that, when executed using the one or more processing units, cause the one or more processing units to execute operations comprising:
precomputing one or more wave profiles;
storing the one or more wave profiles as a texture;
executing a texture lookup using the texture to compute one or more fluid height values based at least in part on the one or more wave profiles; and
rendering a fluid surface based at least in part on the one or more fluid height values.
10 . The system of claim 9 , wherein one or more of the operations are executed using a pixel shader.
11 . The system of claim 9 , wherein the rendering is executed using a single pass of a pixel shader.
12 . The system of claim 9 , wherein the precomputing the one or more wave profiles includes evaluating a wave height function at one or more discrete sample points.
13 . The system of claim 9 , wherein the rendering is further based at least in part on:
computing, using a pixel shader, at least one of advection, spatial diffusion, angular diffusion, boundary reflections, or dissipation corresponding to the fluid surface; and determining wave amplitude values based at least in part on the computing.
14 . The system of claim 9 , wherein the texture is a one-dimensional texture.
15 . A method comprising:
precomputing one or more wave profiles; storing the one or more wave profiles as a one-dimensional (1D) texture; executing a texture lookup using the 1D texture to compute one or more fluid height values based at least in part on the one or more wave profiles; and rendering, using a pixel shader of a graphics processing unit, a fluid surface based at least in part on the fluid height values.
16 . The method of claim 15 , wherein the rendering is executed using a single pass of the pixel shader.
17 . The method of claim 15 , wherein the precomputing the one or more wave profiles includes evaluating a wave height function at one or more discrete sample points.
18 . The method of claim 15 , wherein the rendering is further based at least in part on:
computing, using the pixel shader, at least one of advection, spatial diffusion, angular diffusion, boundary reflections, or dissipation corresponding to the fluid surface; and determining wave amplitude values based at least in part on the computing.
19 . The method of claim 15 , wherein the executing the texture lookup includes approximating a 1D integral with a summation over one or more sampled angles.
20 . The method of claim 15 , wherein the method is executed by a computing system executing a simulation program.Join the waitlist — get patent alerts
Track US2021232733A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.