models of animated rivers for the interactive exploration of landscapes
Embed Size (px)
DESCRIPTION
Grenoble Institute of Technology (INPG). a Ph.D. Defense by Qizhi Yu Under the Advisements of Dr. Fabrice Neyret Dr. Eric Bruneton November 17, 2008. Models of Animated Rivers for the Interactive Exploration of Landscapes. Outline. Introduction Previous work Strategy overview  PowerPoint PPT PresentationTRANSCRIPT

a Ph.D. Defense byQizhi Yu
Under the Advisements of Dr. Fabrice Neyret Dr. Eric Bruneton
November 17, 2008Grenoble Institute of Technology (INPG)*
qyu

IntroductionPrevious workStrategy overviewContributionsConclusion*

IntroductionPrevious workStrategy overviewContributionsConclusion*

*

*

ObjectiveSynthesize visually convincing riversStudy contentModelingRiver shape & surface detailsAnimatingWater motion in rivers.
*

Many applications, need more studies
EA: CrysisGoogle Earth*

MultiscaleGeometry Kilometerscale length millimeterscale wavesWater motionKilometerscale mean flow millimeterscale fluctuationComplicated physicsTurbulence Surface phenomena
*

Modeling and animating rivers ConstraintsRealtimeScalabilityControllabilityRealism
25 fps or more
*

Modeling and animating rivers ConstraintsRealtimeScalabilityControllabilityRealism
Very long or unbounded rivers Camera moves arbitrarily *

Modeling and animating riversConstraintsRealtimeScalabilityControllabilityRealism
Intuitive handles for controlling appearance and behavior of rivers *

Modeling and animating rivers ConstraintsRealtimeScalabilityControllabilityRealism
Animated surface details with temporal and spatial continuity*

Modeling and animating rivers ConstraintsRealtimeScalabilityControllabilityRealism*

IntroductionPrevious workStrategy overviewContributionsConclusion*

3D NavierStokes simulation2D depthaveraged simulation2D simulation Surface wave models (2D) *

3D NavierStokes simulation2D depthaveraged simulation 2D simulationSurface wave models (2D) *

Incompressible NavierStokes equations Momentum conservation
Volume conservation
Boundary conditions
Computational Fluid Dynamics (CFD)Numerical methods
*

CFD CG fluid animationStable solver [stam99]Two approachesEulerian : defines quantities at fixed pointLagrangian: defines quantities at particles
*

Water animation [EMF02] Solve NSE numerically on a grid to get velocities Use levelset to track waterair interface
*

Pouring water in a glass [EMF02]15 minutes per frame 55 x 120 x55 grids
Computationally expensive! *

Poorly scalable CG (stable solver): O(N^3)Difficult to control for artistsWater Behavior Initial values, boundary conditionsNo intuitive relation
*

Smoothed Particle Hydrodynamics (SPH) [MCG03]Solve NSE in the Lagrangian formalism Compared with Eulerian approachEasier adaptive to complex domain Difficult to reconstruct a smooth surfaceFor our purposeSimilar problems as Eulerian approach
*2200 particles5 fps

3D NavierStokes simulation2D depthaveraged simulation 2D simulationSurface wave models (2D) *

2D Shallow Water model [Mol95]Commonly used in Hydraulics for simulating riversAssumptionsHydrostatic approximation
No vertical water motionIntegrate the NS equations along vertical direction Unknowns: depthaveraged velocity & elevation of water surface
*

PropertiesA lot faster than 3D NS simulationLoss some 3D surface features (e.g. overturning )Shallow waves ( wavelength >> depth)For our purposeStill too expensive, especially for large rivers Bounded domain (like other simulation).
*

Linear wave equation [KM90]Simplified from shallow water modelAssumptions constant water depth, no advection termPropertiesFast, cant simulate river flow
*

[Irving et al. 06]20 processors25 minutes per frame*

3D NavierStokes simulation2D depthaveraged simulation2D simulationSurface wave models (2D) *

Simulate 2D velocity by solving 2D NSno surface elevation simulated Use tricks for surface elevationPressure [CdVL95] Noise [TG01]
*

3D NavierStokes simulation2D depthaveraged simulation2D simulationSurface wave models (2D) *
 AssumptionDeep water: wave length

AssumptionHeight fieldA procedural methodParticles on surfaces, advected with a fixed speed Each carries a wave shape functionSuperpose all particles height fieldPropertiesImitate objectwater interactionNo water flow
*

Superpose sine waves [FR86, Pea86]Dynamic wave tracing [GS00]Ship wave [Gla02]
*[Gla02][GS00][Pea86]Not for river flow

Many work on water or wave animation (CG), river simulation (Hydraulics)None for river animation under our constrains: RealtimeScalabilityControllability
*

IntroductionPrevious workStrategy overviewContributionsConclusion*

Model river aspects in three scales, from coarse to fine*

Model river aspects in three scalesMacroscale: river shape & mean water surface
*

Model river aspects in three scalesMacroscale: river shape & mean water surfaceMesoscale: individual & structured waves
*

Model river aspects in three scalesMacroscale: river shape & mean water surfaceMesoscale: individual & structured waves Microscale: continuous field of small waves
*

We need river velocityCause of many mesoscale phenomenaAdvect surface featuresModel water motion in three scalesMacroscale: mean flowMesoscale: individual perturbationsMicroscale: continuous irregular fluctuations
*

We need river velocityCause of many mesoscale phenomenaAdvect surface featuresModel water motion in three scalesMacroscale: mean flowMesoscale: individual perturbations Microscale: continuous irregular fluctuations
We wont solve ALL phenomena in this thesis .*

IntroductionPrevious workStrategy overviewContributions1: Macroscale2: Mesoscale3: MicroscaleConclusion*

IntroductionPrevious workStrategy overviewContributions1: Macroscale2: Mesoscale3: MicroscaleConclusion*

GoalShape of riversMean flow of rivers
*

GoalShape of riversMean flow of rivers
GIS or previous work [KMM88]*

Input river shape (described as a network)
*

Assumption a 2D steady flowVisually convincing velocityDivergence free IncompressibleBoundaryconforming Flowing from source to sink (given flow rate Q)ContinuousRequirements of algorithmsFast, scalable and controllable*

Some existing work [BHN07] suggest using stream function to get divergencefree vector field
*

Stream function is defined such that
Incompressibility
*

Properties of stream functionConst along boundariesRelates to the volume flow rate
Extend to a river networkGiven flow rates and a river network all boundary values*

Given flow rates, and boundary valuesHow to determine the internal field ?
*

Assumption Irrotational (potential) flow
*

Observe a numerical solution of a Laplace equation Streamlines (isocurve of stream function) *

[GW78]Interpolant of the InverseDistance Weighted interpolation (IDW) [She68] similar to the harmonic functions.We adapt IDWlocal for the performance reasonsprovide parameters for controlling velocity profile*

*d distance to boundariesf smooth functions search radiusp parameters

Our result Numerical solution*

Finite difference
*

Interpolation relies heavily on distance queryAcceleration neededCombine with tilebased terrain [BN07]Generate an acceleration data structure in each newly created terrain onthefly
Please see the thesis for more details.*

*

Procedural river flowFastScalableCalculate at neededVelocity locally dependentControllable Control velocity: flow rates, interpolation parametersEdit shape of river onthefly*

IntroductionPrevious workStrategy overviewContributions1: Macroscale2: Mesoscale3: MicroscaleConclusion*

GoalModeling individual & structured wave features on river surfaces, with our constraints.RealtimeScalabilityControllabilityQuality
*

*Real scene

Highresolution required for simulation and rendering
*

Construct the vector features from a given velocity field without numerical simulationShockwaveRipples*

ProblemsNeed to be improved robustness & efficiencyNo solution for surface reconstruction and rendering *

Improve on existing model [NP01]ResultMean flow shockwave curves (wave crests) Animated by adding perturbation to the mean flow
*

Improve on existing model [NP01]ResultMean flow shockwave curves (wave crests) Animated by adding perturbation to the mean flow
MacroscaleMesoscale, [WH91]*

Improve on existing model [NP01]ResultMean flow shockwave curves (wave crests) Animated by adding perturbation to the mean flowVery efficient
*

Improve on existing model [NP01]Construct appropriate representation from wave features for highquality rendering
*

lores base water surface + hires wave surface*

lores base water surface + hires wave surfaceMacroscale*

lores base water surface + hires wave surfaceMesoscale*

Featurealigned mesh reduces geometric aliasing ( normalnoise)Not featurealignedFeaturealigned*

Define wave surface as sweeping a wave profile along the wave curveUser defined Wave profileWave curve*Water surface mesh

Sample by a quad mesh aligned the wave curvev*Wave curve

Accurate normals from the wave profileuvBNTP(u,v)v*

Mesh stitching ?Remesh base surface at each frame, too expensiveWe solve it in the rendering stage Please refer to the thesis for more details*

*

Simply draw two wave strips with Zbuffer*

Generate a dedicated mesh at crossing*

Final result*

*

Approach: featurebased vector simulationSimulation: construct & animate vector featuresRendering: featuredbased representation*

IntroductionPrevious workStrategy overviewContributions1: Macroscale2: Mesoscale3: MicroscaleConclusion*

Goal Modeling small scale animated surface featuresApproachdynamic texturesTwo workWave spritesFocus on performanceLagrangian texture advectionFocus on quality
*

IntroductionPrevious workStrategy overviewContributions1. Macroscale2. Mesoscale3. MicroscaleWave spritesLagrangian texture advectionConclusion*

Sprite: a small textured elementSprites in texture world [LN03,LHN05] to get large highresolution texture , low memoryIdea: combine animation + texture spritesto get very large river with animated details, efficiently.
*

*

Dynamic adaptive samplingA set of particles in world space advected by flowKeep Poissondisk distribution in screen space.Attach a textured sprite to each particle
*

Dynamic adaptive samplingA set of particles in world space advected by flowKeep Poissondisk distribution in screen space.Attach a textured sprite to each particle
Why ?*

Uniform densityOverlapping as little as possibleEasy to ensure spatial continuitySuperimposing sprites (with r=d) ensures noholesrr = d diameter of poissondisk *

Dynamic adaptive samplingA set of particles in world space advected by flowKeep Poissondisk distribution in screen spaceAttach a sprite to each particle
Autoadapt to distance*

AlgorithmAdvect particles with the flow in world spaceDelete particles out of the view frustumDelete particles violating the minimum distance required by the Poissondisk distribution (in screen space)Insert particles to keep Poissondisk distribution
*

AlgorithmAdvect paticles with the flowDelete particles out of the view frustumDelete particles violating the minimum distance required by the Poissondisk distribution (in screen space)Insert particles to keep Poissondisk distribution
Boundarysampling algorithm [DH06]*

Spatial continuitySmooth kernelConstrained sampling issues near boundaryTemporal continuityFading in/outPlease refer the thesis.
*

A set of sprites well distributedEach sprite Live in texture spacemaps to a portion of a reference textureReconstruct the global textureSprite has circular kernel in screen space , but ellipse in object spaceSo we superimpose them in screen space*

*

*Efficient GPU. Inspired from [LN05]

*

WavespritesTexture flow surface with sceneindependent performance (in realtime)
LimitationNo sprite deformation consideredSliding of texture between sprites bad especially in place where velocity gradient is high
*

IntroductionPrevious workStrategy overviewContributions1. Macroscale2. Mesoscale3. MicroscaleWave spritesLagrangian texture advectionConclusion*

A technique of dynamic textureConform to the input flowConserve texture properties (e.g. spectrum)PurposeAugment coarse simulation with small scale appearance
*

Advect texture coordinatesTexture follow flow and deformBut, over stretching destroy texture propertiesRegenerate a textureAfter a delay: latencyBlend two dephased textures Illusion of advection
*

How to choose a reasonable latency ? high bad conservation of spectrum low bad conformation to flow Good one: adapt to local flow condition (deformation)
In [MB95], only one global value*

Idea: adaptive local latencyLocal deformation metrics sMIPmaplike approach:Multiple layers of texturesEach layer = Eulerian advection methodAssign different latency to each layerFor each pixel, interpolate two nearest layers according to local s
*

latency of all layers are bounded in a rangee.g. For zerovelocity , the ideal latency should be infinity close to still area, we cant choose a good latency value Interpolation : not accurateEulerian formalism not optimal in large sparse domain (clouds, fire)
*

Idea Lagrangian formalism as in wave sprites workAttach to each particle a deformable textured patches mapping to a reference textureReconstruct a global texture by blending all patches
*

Advected by flowDynamic Poissondisk distribution
d*

Init: regular gridKernel radius = dEnsure full coveragePatch size > 2d Allow deformation2ddsizePoissondisk*

Init: regular gridKernel radius = dPatch size > 2dMap to a random portionStore (u, v) at nodesUV*

Nodes advected by flow
*

Nodes advected by flow Delete a patch Exceed some deformation metric
*

Nodes advected by flow Delete a patch Exceed some deformation metricPatch boundary intersects with kernel
A new patch would be generated nearby automatically by Poissondisk distribution mechanism*

Temporal & spatialInsert / delete temporalSmooth kernel spatialDefine various temporal and spatial weights on grid nodes
Please see details in the thesis*

Encode all patches into one texture TpatchTexcoords (u, v)Weights w(x, t) Accessing the advected textureFor each pixelDetermine the patches covering current pixelAccess reference texture via Tpatch Blending with weights (only kernel parts!) *

*

Compare against Eulerian advectionFFTTo evaluate the appearant spectrumOptical flowTo evaluate the appearant motionInput reference texture 3octave Perlin noise
*

Various input flow
Please see my webpage for more video results*RotationShearFreeBoundary

*

*

We target textures specified by global properties, e.g. spectrumUseful for natural flowFor nonnoise texturesMany of them work wellHighstructured onesSuffer from ghosting effectsFuture work: choose best match portion from reference texture*

*

*

LimitationPatches carry wavelength < kernel size low frequency: treated at the particle level (i.e. simulation)
*

A new texture advection methodLagrangian formalismBrings decorrelation of texture mapping and regeneration eventsLocal patchesEnsure continuous texture animation Provide accurate distortion metric
*

IntroductionPrevious workStrategy overviewContributionsConclusion*

By using our modelsOne can achieve realtime, scalable, and controllable river animation with temporally and spatially continuous details on current desktop *

MacroscaleVelocity: more studies on parametersInfluence of slope of river bed
*

MesoscaleHydraulic jumps, ship waves and wakes ...*

Microscale I: wave spritesVarious reference textures: domain wise controlSprites density: adaptive to flow condition
*

Microscale II: Lagrangian texture advectionExtend to 3D volume Improve: for highstructured texture
*[RNGF03]

Put models togetherIntegrate with existing systems Google Earth, Proland [BN08], video games *EA: CrysisGoogle EarthProland

*

a Ph.D. Defense byQizhi Yu
Under the Advisements of Dr. Fabrice Neyret Dr. Eric Bruneton
November 17, 2008Grenoble Institute of Technology*
****.*Generally, the purpose of the study of rivers in computer graphics is to synthesize visually convincing rivers.
For this purpose, we need to model the shape of rivers and surface details, in addition, we need to model the water motion in rivers.
Rendering of water is out of the range *
Nowadays, more and more computer graphics applications have the ambitious to present virtual but realistic natural scenes. In these scenes, rivers is an important feature.
However, rivers in current applications are still not realistic enough, especially in the realtime case. For example, in the video game Crysis, rendering of water is good, but the water can pass through solid boundaries, which is not natural.
Moreover, river animatin is particully difficult in a very large scene.For example, Google Earth a GIS application, that allows users to navigate in the whole world. But rivers in Google earth is static.
Therefore, we need more studies of rivers in computer graphics, especially for the realtime case.
*
**Second, we want to handle very long or even unbounded rivers, and , in the scene, the camera can move arbitrarily, the users can observe rivers very closely, or observe rivers far away. All these require our algorithms should be scalable.
*****
In computer graphics, there is a lot of work on water or surface waves animation. But not too much work specific to river animation.In addition, In hydraulics field, there is a lot of work on river simulation.
Now we discuss them in 4 categories, according to the visual features they are able to model..
. *
The first is water simulation, in this category, the physical quantities are defined and simulated in 3D.
The second is river simulation, it this category, the physical quantities are averaged in vertical direction, and water depth is considered in the models.
The final category is suface wave models, these models are purly 2D. *
*
The cfd techqniues can be used for animation purpose. Here, an important work is Stams stable solver.% makes the CFD techniques practical for animation problems. Their method allows large timesteps while being stable. Certaitly, it will loss some accuracy, but it could be accepted in animation.
Note that there are too approaches for solving NS equations. The Eulerian approach, define quantities at fixed points in the sapce. While, the Lagrangian approach defines quantities at particles that follow the flow.
Generally, there are two approaches for solving the ns equations.
Shorten sentences
Stable solver less accurate
One
with an implicit function
Many work has been done to use CFD tech for the animation purpose
Basically, it includes two steps.
Here we need a stable solver tailored for computer animation. The stable solver proposed by stam are commonly used. The stable solver is important since it allows us to use a large time step while keeping the simulation stable. Certainly, it will loss some physical accurity, but it is basically accepted for the animation purpose.
The levelset method track the interface by advecting an implicit function. It can handle interface with complicated *
This is a typical water animation work that uses 3D NS queations and Eulerian approach
Water animtion that use NS simulation with Eulerin approch.
First, they solve NSE on a grid to get the velocities. And then, they uses leveset method to track waterair interface by advecting by advecting an implicit function
Many work has been done to use CFD tech for the animation purpose
Basically, it includes two steps.
Here we need a stable solver tailored for computer animation. The stable solver proposed by stam are commonly used. The stable solver is important since it allows us to use a large time step while keeping the simulation stable. Certainly, it will loss some physical accurity, but it is basically accepted for the animation purpose.
The levelset method track the interface by advecting an implicit function. It can handle interface with complicated **
*
SPH method is a typical Lagrangian approach.
Compared with eulerian approach, it is easier adaptive to complex domain, but it is more dificult to reconstruct a smooth surface from particles.
For our purpose, it also surffers similar problems as the Eulerian.
The method is still expensive. In this image, About 2000 particles are used for simulating pouring water in a glass, it runs in 5 fps. Note that this a very small domain compared with rivers.
***
***. ***
****.***
In the meso scale, we model individual and strcuture dwaves. Such as ****In this work, we assume that the shape of rivers is available from GIS or previous work. *. ****
*Our opportunity is that, in computer animation, we do not need physically accurate velocity. We only need a velocity file that looks like the real river.
First,
**The streamlines inside look like interpolation of the border.
****
***Change the color**Simulating this phenomenon is difficult *
So, my first work here is to improve on the existing model
But , I will not introduce the method in this talk.
The main results are:
Given a velocity field, we can get a shockwave curve (crest) Wave curves animated by perturbating the mean velocity field
Very efficient, easy for keyframing
*Vectordata, featurebased simulation >>> It is very efficient. Easy for keyframe, if do not like the simulation.
Pertubation should be considered in mesoscale. And we can use [WH91] work by superposing local analytic velocity field to the mean flow.*****
We consider to construct featurealigned wave surface.
****Realtime *, **
****
Ensure temporally continuous
****].*Now I detail the algorithm***We have obtained *****
*Add a video***Put a video here. ***Show velocity profile.*
of advected texture
calculated from advected texture*Put images here. Various flow.*Show velocity profile.*Advecting texture is a general prolem, has a wider range than river**Now I show you texture advection with nonnoise texture.***
We know some qualitive realtion between interpolation parameters and the profile of velocity, but not accurate.
Also, moving boundary need efficient datastructure for update distance.
Also about water depth.
Unsteady water surfacesTimevariant depth and boundaries
*Images*
Also, use images here. Foam ..
Now sprites only adaptive to the view distance. We would like to make it adaptive also to the flow conditions.*
. ***