Noises & Turbulences. Why Noises? One of the most popular procedural technique Very few things in nature are regular Great variety of noises exists The.

Slides:



Advertisements
Similar presentations
Linear Filtering – Part I Selim Aksoy Department of Computer Engineering Bilkent University
Advertisements

Spatial Filtering (Chapter 3)
Topic 6 - Image Filtering - I DIGITAL IMAGE PROCESSING Course 3624 Department of Physics and Astronomy Professor Bob Warwick.
Transforming images to images
Chapter 3 Image Enhancement in the Spatial Domain.
03/16/2009Dinesh Manocha, COMP770 Texturing Surface’s texture: its look & feel Graphics: a process that takes a surface and modifies its appearance using.
Procedural Textures Jian Huang, CS594, Fall 2002 This set of slides references slides used at Ohio State and “Texturing and modeling” by Ebert, et. al.
David Luebke1/19/99 CS 551/651: Antialiasing David Luebke
Ted Adelson’s checkerboard illusion. Motion illusion, rotating snakes.
CS 551 / CS 645 Antialiasing. What is a pixel? A pixel is not… –A box –A disk –A teeny tiny little light A pixel is a point –It has no dimension –It occupies.
COMPUTER GRAPHICS CS 482 – FALL 2014 OCTOBER 6, 2014 TEXTURE MAPPING TEXTURES BUMP MAPPING ENVIRONMENT MAPPING PROCEDURAL TEXTURING.
Lecture 4 Linear Filters and Convolution
Sampling, Aliasing, & Mipmaps
Image processing. Image operations Operations on an image –Linear filtering –Non-linear filtering –Transformations –Noise removal –Segmentation.
Motion Analysis (contd.) Slides are from RPI Registration Class.
Procedural Modeling L-Systems Procedural Terrain Procedural Behavior Based on the slides from Spring 2007.
1 Image Filtering Readings: Ch 5: 5.4, 5.5, 5.6,5.7.3, 5.8 (This lecture does not follow the book.) Images by Pawan SinhaPawan Sinha formal terminology.
Preprocessing ROI Image Geometry
Twelve painting with procedures. Overview Making shaded images with procedures Making a more elegant language Making textures with noise functions.
Texture mapping. Adds realism to computer graphics Texture mapping applies a pattern of color Bump mapping alters the surface Mapping is cheaper than.
Image Filtering. Problem! Noise is a problem, even in images! Gaussian NoiseSalt and Pepper Noise.
Face Recognition Using Neural Networks Presented By: Hadis Mohseni Leila Taghavi Atefeh Mirsafian.
1 Computer Graphics Week13 –Shading Models. Shading Models Flat Shading Model: In this technique, each surface is assumed to have one normal vector (usually.
David Luebke 1 9/4/2015 CS 551/651: Advanced Computer Graphics Antialiasing Continued: Prefiltering and Supersampling.
Noise Based Texture Noise Based Texture CMPS260 Presentation Guoping Xu Mar. 05, 2003.
1 Additional 3D Topics  Splitting polygons  Off screen rendering for capture of rendered images.  Sound in Java 3D scene graphs  Advanced textures.
1 Texture. 2 Overview Introduction Painted textures Bump mapping Environment mapping Three-dimensional textures Functional textures Antialiasing textures.
Interactive Terrain Synthesis
Procedural Textures.
Noise and Procedural Techniques John Spitzer Simon Green NVIDIA Corporation.
Medical Image Analysis Image Reconstruction Figures come from the textbook: Medical Image Analysis, by Atam P. Dhawan, IEEE Press, 2003.
Linear Filtering – Part I Selim Aksoy Department of Computer Engineering Bilkent University
Image Processing Xuejin Chen Ref:
Image Processing Edge detection Filtering: Noise suppresion.
Lecture 6: Edge Detection CAP 5415: Computer Vision Fall 2008.
CSC505 More on Particles Special Effects. CSC505 Special Effects Extensions to the particle engines we looked at last week –Similar in that we are looking.
Create Procedural Textures with Perlin Noises
Duy & Piotr. How to reconstruct a high quality image with the least amount of samples per pixel the least amount of resources And preserving the image.
Edges.
02/05/2002 (C) University of Wisconsin 2002, CS 559 Last Time Color Quantization Mach Banding –Humans exaggerate sharp boundaries, but not fuzzy ones.
Real-Time Rendering Cody Tankersley.  Term Project Overview ◦ Desired Shaders  What is noise?  A Little History….  Noise Functions ◦ Some Implementation.
Image Morphing Computational Photography Derek Hoiem, University of Illinois 9/29/15 Many slides from Alyosha Efros.
CS559: Computer Graphics Final Review Li Zhang Spring 2010.
October 1, 2013Computer Vision Lecture 9: From Edges to Contours 1 Canny Edge Detector However, usually there will still be noise in the array E[i, j],
CSE 6367 Computer Vision Image Operations and Filtering “You cannot teach a man anything, you can only help him find it within himself.” ― Galileo GalileiGalileo.
Machine Vision Edge Detection Techniques ENT 273 Lecture 6 Hema C.R.
Geoprocessing and georeferencing raster data
Sliding Window Filters Longin Jan Latecki October 9, 2002.
An Image Synthesizer- Perlin Noise. Outline Noise Introduction Noise Algorithm Noise Texture Example.
67535: Computer Games Programming Week 2: Randomness: Perlin noise and Fractals Lighting: Phong-Blinn-Giraud; HDR Tutorial: Phong lighting in a fragment.
Processing Images and Video for An Impressionist Effect Automatic production of “painterly” animations from video clips. Extending existing algorithms.
Part II – Photorealistic Rendering (1) Texture (4) CPSC 591/691.
CSE 681 Texture Mapping: Solid Texturing. CSE 681 Texture Mapping Visual complexity on demand Vary display properties over object Location on object used.
Spatial Image Enhancement
Edge Detection Phil Mlsna, Ph.D. Dept. of Electrical Engineering Northern Arizona University.
Noise | Course Overview Jim Whitehead
Linear Filters and Edges Chapters 7 and 8
Procedural Textures.
Filtering – Part I Gokberk Cinbis Department of Computer Engineering
Computational Photography Derek Hoiem, University of Illinois
Image Processing - in short
Computer Vision Lecture 9: Edge Detection II
Sampling Gabor Noise in the Spatial Domain
Basic Image Processing
Texture Mapping: Solid Texturing
CS 565 Computer Vision Nazar Khan Lecture 9.
Image Filtering Readings: Ch 5: 5. 4, 5. 5, 5. 6, , 5
Lecture 7 Spatial filtering.
Texture Mapping: Solid Texturing
Presentation transcript:

Noises & Turbulences

Why Noises? One of the most popular procedural technique Very few things in nature are regular Great variety of noises exists The simplest way = white noise: out = random(); –A very bad way of generating noise No memory No spatial relation to anything Not visually interesting

What is Noise? Defined by noise functionDefined by noise function R → R functionR → R function statistically invariant to translation R 2 → R functionR 2 → R function +statistically invariant to rotation Any R n → R functionAny R n → R function +sharp frequency spectrum

Lattice Noises Need to relate noise to space –Output = noise(point coord); Family of lattice noises: –Generate a 1D/2D/3D grid –Compute random values at grid points –Store values –During rendering: interpolate neighbors Questions to make a practical algorithm –What are the values at the nodes? –Interpolation strategy?

First noise in CGFirst noise in CG Ken Perlin: An Image Synthesizer, 1985Ken Perlin: An Image Synthesizer, 1985 Originally defined as a lattice gradient noiseOriginally defined as a lattice gradient noise Interpolation dependentInterpolation dependent different interpolation example different interpolation example Perlin Noise

Perlin Noise History Tron 1981Tron 1981

Lattice Noise Types Value noise –n-linear interpolation in between random values Gradient noise –Store gradient vectors in the nodes –Values are zero at the nodes Value-gradient noise a)weighted sum of value & gradient b)Hermite interpolation Lattice convolution noise –convolution interpolation

Value-Gradient Comparison Value / ValGrad 0.25 / ValGrad 0.5 / ValGrad 0.75 / Gradient

Ridged Noise Value / ValGrad 0.25 / ValGrad 0.5 / ValGrad 0.75 / Gradient Palette modulation used for interpolation

Most Simple = n-linearMost Simple = n-linear 1D linear 2D bilinear 1D linear 2D bilinear Interpolations

Interpolation Blending Functions Linear interpolation on f(0), f(1):Linear interpolation on f(0), f(1): f(x) = (1-x) f(0) + x f(1) uses blending functions (1-x), x In general:In general: f(x) = u(x) f(0) + v(x) f(1) Requirements on blending functions (x  0,1  )Requirements on blending functions (x  0,1  ) a)u(x) + v(x) = 1 b)u(0) = 1 v(0) = 0 c)u(1) = 0v(1) = 1

Smooth Interpolations C 2 continuity = ?C 2 continuity = ? Additional requirements on blending functionsAdditional requirements on blending functions Null derivations:Null derivations: d) u’(0) = 0v’(0) = 0 e) u’(1) = 0v’(1) = 0 One Solution: Hermite cubics P 1, P 4One Solution: Hermite cubics P 1, P 4 u(x) = 2x 3 + 3x 2 + 1u(x) = 2x 3 + 3x v(x) = -2x 3 + 3x 2v(x) = -2x 3 + 3x 2 f(x) = 2( f(0) – f(1) )x 3 + 3( f(1) – f(0) ) 2 + f(0)f(x) = 2( f(0) – f(1) )x 3 + 3( f(1) – f(0) ) 2 + f(0)

Zero derivates  flats in lattice pointsZero derivates  flats in lattice points Use derivates aligned to neighborsUse derivates aligned to neighbors zero derivates aligned derivates zero derivates aligned derivates 1D Cubic Interpolations

2D Cubic Interpolations zero derivates aligned derivates zero derivates aligned derivates

Composed Interpolations Blending in 1D: f(x) = (1-x) f(0) + x f(1)Blending in 1D: f(x) = (1-x) f(0) + x f(1) What about f(x) = (1-x) u 0 (x) + x u 1 (x)What about f(x) = (1-x) u 0 (x) + x u 1 (x) Set requirementsSet requirements Solution = smoothest cubic interpolationSolution = smoothest cubic interpolation

Cosine Interpolation Blending functionsBlending functions u(x) = ( cos(x  ) + 1) / 2u(x) = ( cos(x  ) + 1) / 2 v(x) = ( 1 – cos(x  ) ) / 2v(x) = ( 1 – cos(x  ) ) / 2 Slower computationSlower computation

Sharp Interpolations Example

Deformed Lattice Interpolations Radial interpolationRadial interpolation –(r,  ) coordinate system –radius, angle –principle same as for ortho-lattices

Lattice Noises in 3D Stored lattice = memory consumptiveStored lattice = memory consumptive Store onlyStore only –256 random values –Permutation table Referencing:Referencing: Value table index: P[ ix+P[ iy+P[iz] ] ] P - permutation table Suppressed periodic structureSuppressed periodic structure

Convolution Noises 1.Generate random lattice 2.Apply convolution filter until necessary Gaussian convolutionGaussian convolution Values are averaged  averaged noiseValues are averaged  averaged noise

Averaged Noise Control = number of iterationsControl = number of iterations Modifications: anisotropic filtersModifications: anisotropic filters → →

Other Noise Types Spot Noise (van Wijk, 1991)Spot Noise (van Wijk, 1991) Sparse convolution noise (Lewis 1989)Sparse convolution noise (Lewis 1989) –Interpolation of randomly located random values –Suppresses grid artifacts fBm (Fractal Brownian Move)fBm (Fractal Brownian Move) –frequency based Integral NoiseIntegral Noise –noise(x) = f( noise(x-1) ) Voronoi NoiseVoronoi Noise

Spot Noise 1D spot noise function:1D spot noise function: Composition of spot function h(x):Composition of spot function h(x): →

Integral Noise n-th integration of white noisen-th integration of white noise

Integral Noise Algorithm Init: randomly generate f(0), f 1 (0), … f n-1 (0)Init: randomly generate f(0), f 1 (0), … f n-1 (0) In step x:In step x: 0.f n (x) = random(x) … i. f i (x) = f i (x-1) + f i+1 (x) … n. f(x) = f 0 (x) n+1. remember f(x), f 1 (x), … f n-1 (x) f i (x) = i-th derivate of f(x)f i (x) = i-th derivate of f(x)

2D Integral Noise Example Vertical, horizontal edge = 1D noiseVertical, horizontal edge = 1D noise Inner points are zig-zag traversedInner points are zig-zag traversed point[x,y] = composition of point[x-1,y] & point[x,y-1]point[x,y] = composition of point[x-1,y] & point[x,y-1]

Voronoi Noise 1.Randomly distribute n points 2.Visualize distance to the nearest neighbour

Turbulences Image modulation functionsImage modulation functions Output = f( x + turb(x) )Output = f( x + turb(x) ) Usual requirement = continuityUsual requirement = continuity Modulation sourceModulation source –Simple image –Explicit function

Original function = identityOriginal function = identity Lower turbulence is 3 times greater than upperLower turbulence is 3 times greater than upper 1D Turbulence Example

Perlin Turbulence k = smallest number satisfyingk = smallest number satisfying 1/2 k+1 < pixel size Sum of noise functionsSum of noise functions Fractal character:Fractal character: –doubling frequency –Halving amplitude Noise function = Perlin noiseNoise function = Perlin noise

i = octave number (frequency = 2 i )i = octave number (frequency = 2 i ) Composing Perlin Turbulence

1D Perlin Turbulence Frequency self-similarityFrequency self-similarity Not visually attractive in 1DNot visually attractive in 1D

2D Perlin Turbulence Noise functions:Noise functions: Composition:Composition:

Perlin Turbulence Example Direct visualizationDirect visualization –fractal terrains –clouds

Turbulence Modulated Images Image to modulate = clampImage to modulate = clamp Turbulence used: 2D averaged noiseTurbulence used: 2D averaged noise

Perlin Turbulence Clouds →

Clamp = sin(y)Clamp = sin(y) Perlin turbulencePerlin turbulence smaller turbulence larger turbulence smaller turbulence larger turbulence Marble

Wood Clamp = rotation sineClamp = rotation sine Brown paletteBrown palette

Other Turbulence Examples

Fire 3D turbulence (2D + time) of a flame3D turbulence (2D + time) of a flame

Fire Animation

Literature David Ebert, Kent Musgrave, Darwyn Peachey, Ken Perlin, and Worley. Texturing and Modeling: A Procedural Approach. Academic Press, October ISBN David Ebert, Kent Musgrave, Darwyn Peachey, Ken Perlin, and Worley. Texturing and Modeling: A Procedural Approach. Academic Press, October ISBN Ken Perlin: Tons of examples on www