logging in or signing up Lecture8 HyperTexture Raffaele Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 617 Category: Entertainment License: All Rights Reserved Like it (1) Dislike it (0) Added: January 14, 2008 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Simulation Smoke and Water in CG: Simulation Smoke and Water in CG Vortex Particle Method, Hyper-Texturing, Cellular TexturingLast Few Times…: Last Few Times… Moving smoke density (and temperature) Moving fluid velocities (Navier Stokes) How to write a paperToday’s Lecture: Today’s Lecture Hyper Texturing Cellular Texturing Vortex Particle Method (extension to vorticity confinement)Slide4: Hyper TexturingExamples of HyperTexture I: Examples of HyperTexture IExamples 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 WayNoise 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 aliasingGradient 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 NoiseTurbulence 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 FunctionAn 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 = 10Hint: 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 TexturingCellular Texturing Examples I: Cellular Texturing Examples ICellular Texturing Examples II: Cellular Texturing Examples IICellular 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 You do not have the permission to view this presentation. In order to view it, please contact the author of the presentation.
Lecture8 HyperTexture Raffaele Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 617 Category: Entertainment License: All Rights Reserved Like it (1) Dislike it (0) Added: January 14, 2008 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Simulation Smoke and Water in CG: Simulation Smoke and Water in CG Vortex Particle Method, Hyper-Texturing, Cellular TexturingLast Few Times…: Last Few Times… Moving smoke density (and temperature) Moving fluid velocities (Navier Stokes) How to write a paperToday’s Lecture: Today’s Lecture Hyper Texturing Cellular Texturing Vortex Particle Method (extension to vorticity confinement)Slide4: Hyper TexturingExamples of HyperTexture I: Examples of HyperTexture IExamples 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 WayNoise 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 aliasingGradient 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 NoiseTurbulence 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 FunctionAn 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 = 10Hint: 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 TexturingCellular Texturing Examples I: Cellular Texturing Examples ICellular Texturing Examples II: Cellular Texturing Examples IICellular 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