Lecture8 HyperTexture

Uploaded from authorPOINTLite
Views:
 
Category: Entertainment
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

Simulation Smoke and Water in CG: 

Simulation Smoke and Water in CG Vortex Particle Method, Hyper-Texturing, Cellular Texturing

Last Few Times…: 

Last Few Times… Moving smoke density (and temperature) Moving fluid velocities (Navier Stokes) How to write a paper

Today’s Lecture: 

Today’s Lecture Hyper Texturing Cellular Texturing Vortex Particle Method (extension to vorticity confinement)

Slide4: 

Hyper Texturing

Examples of HyperTexture I: 

Examples of HyperTexture I

Examples of HyperTexture II: 

Examples of HyperTexture II Images from Stealth (visual effects by Digital Domain)

Examples of HyperTexture III: 

Examples of HyperTexture III Ken Perlin received an Academy Award for devising a method for generating textures like this marble which was taken from his 1985 paper.

A Soft Shape: 

A Soft Shape Consider a sphere-shape with an inner radius, ri, and an outer radius ro:

Basic HyperTexture Paradigms: 

Basic HyperTexture Paradigms Next we define several basic texture functions...

Noise I: 

Noise I High Frequency Content in a Controlled Way

Noise II: 

Noise II Desired Noise-Properties: Noise should be a repeatable pseudorandom function of its inputs Noise should have a known range, e.g. -1 to 1 Noise should be band-limited Noise should not exhibit obvious periodicities or regular patterns Noise should be translationally invariant Noise should be rotationally invariant We will look at noise functions known as lattice noise...

Noise III – Value Noise: 

Noise III – Value Noise Note that typically your lattice will not be positioned exactly at the same Position and have the same resolution as your density/simulation grid. 1: Generate random numbers at lattice points: 2: Interpolate between the lattice points to obtain a smooth function:

Noise IV – Interpolation methods: 

Noise IV – Interpolation methods There are many more... See e.g. a numerical analysis book Linear Interpolation: Cosine Interpolation: Cubic Interpolation:

Gradient Noise I: 

Gradient Noise I Value is zero at all lattice points. One pseudo-random wavelet is centered at each lattice point (wavelet = function that drops off to zero outside some region and that integrates to zero). Wavelet consists of: Radius (which we set equal to 1) A random gradient direction assigned to each lattice point (note: only variation between lattice points) Each point in space is influenced by eight wavelets. Notice that if you sample this noise function exactly at the lattice points you get identically zero – an effect of aliasing

Gradient Noise II: 

Gradient Noise II Computing the value at a certain point x: Compute which cubical cell x lies in. Compute the wavelet centered on each of the eight vertices of the cubical cell. Sum the wavelets. It is possible to combine the value and gradient noise functions by forming a weighted sum of the two into a Value-Gradient noise.

Comparing Noise: 

Comparing Noise Value Noise Gradient Noise Value-Gradient Noise

Turbulence I: 

Turbulence I Fractal Turbulence Turbulence has gradient discontinuities at all scales...

Turbulence II: 

Turbulence II A turbulent hyper-texture is generated by summing noise at several frequencies and scaling higher frequencies down:

Turbulence III: 

Turbulence III Example: MINFREQ = 1, MAXFREQ = grid-resolution. Note that there should be some mapping between the density grid and the noise texture (e.g. Gradient noise zero on lattice points). This can be as simple as a non-integral translation in one or more directions.

The Bias Function: 

The Bias Function The bias function: b lies between 0 and 1.

The Gain Function: 

The gain function: g lies between 0 and 1. The Gain Function

An Example Hyper-Texture: 

An Example Hyper-Texture D(x) = sphere(x + x * turbulence(x))

Marble Revisited: 

Marble Revisited marble = sin(point.x + turbulence(point)*point.x)

The Signed Distance Field (SDF): 

The Signed Distance Field (SDF) The surface S is defined as: The unsigned distance field: The signed distance field: where sign(x) is -1 inside and +1 outside.

Soft Density Fields from SDFs: 

Soft Density Fields from SDFs ri = 0, ro = 10 ri = -10, ro = 10

Hint: How to Create a Hypertextured bunny: 

Hint: How to Create a Hypertextured bunny HT-bunny(x) = bunny(x + c*turbulence(x)*n) Where c is a scalar representing the contribution of the turbulence and n is the normal (normalized gradient).

Slide27: 

Cellular Texturing

Cellular Texturing Examples I: 

Cellular Texturing Examples I

Cellular Texturing Examples II: 

Cellular Texturing Examples II

Cellular Texturing I: 

Cellular Texturing I Let F1(x) be the distance to the closest feature, F2(x) the distance to the second closest feature and so on. Then a cellular texture at a single point x can simply be computed as: Cellular(x) = C1*F1(x) + C2*F2(x) + C3*F3(x) + C4*F4(x) Note that Cellular(x) = F1(x) resembles a Voronoi Diagram.

Cellular Texturing II: 

Cellular Texturing II The water-like surface can be computed much like turbulence by summing cellular textures at different frequencies:

Slide32: 

Vortex Particle Method Let’s first recall the vorticity confinement method...

Vorticity Confinement I: 

Vorticity Confinement I (Slide by Jos Stam, SIGGRAPH 2003)

Vorticity Confinement II: 

Vorticity Confinement II (Slide by Jos Stam, SIGGRAPH 2003)

Vorticity Confinement III: 

Vorticity Confinement III (Slide by Jos Stam, SIGGRAPH 2003)

What’s Wrong with Vorticity Confinement?: 

What’s Wrong with Vorticity Confinement? Too much vorticity confinement causes instabilities and artifacts... Vorticity confinement is hard to control. The degree of vorticity confinement, , is the same at all grid points.

Vortex Particle Method: 

Vortex Particle Method We want rolling smoke effects that do not have the artifacts of Vorticity confinement alone. Vortex Particle Method was used in Star Wars III.

Vortex Particle Method: 

Vortex Particle Method The basic idea: Let particles carry vorticity (magnitude and direction) and affect the velocity field computed by the grid based method locally using vorticity confinement. (= a localized vorticity confinement force).

Vortex Particle Method: 

Vortex Particle Method Recall the momentum conserving part of the Navier Stokes equations: This can be put into vorticity (curl) form by taking the curl on both sides:

Vortex Particle Method: 

Vortex Particle Method If we only solved for vorticity at the particles, we would need to construct a velocity field u from the vorticity carried by the particles: This is hard! So instead we just let u be computed using the usual grid based method and for the vorticity: We ignore body forces and diffusion in the vorticity equation above! Vorticity is advected: This is done simply by passively advecting the particle position using the velocity field Use the same method for the advection term as for semi-lagrangian advection (here just forward instead of backwards) And stretched: At each step the magnitude of the vorticity is conserved!

Vortex Particle Method: 

Vortex Particle Method Finally the vorticity of the particles is transferred to the grid using a localized vorticify confinement: Where is a Gaussian kernel: Since the vorticity is largest at the center of the particle, xp, we have that: And finally:

Next Time: 

Next Time Introduction to Water Simulation How to represent the water surface as a deforming surface: Level Sets