An Image Synthesizer- Perlin Noise. Outline Noise Introduction Noise Algorithm Noise Texture Example.

Slides:



Advertisements
Similar presentations
This algorithm is used for dimension reduction. Input: a set of vectors {Xn є }, and dimension d,d
Advertisements

Procedural Textures. Noise in glman  glman automatically creates 2D and 3D textures (with default sizes 64x64 and 64x64x64) named  Noise2  Noise3 
Zhimin CaoThe Chinese University of Hong Kong Qi YinITCS, Tsinghua University Xiaoou TangShenzhen Institutes of Advanced Technology Chinese Academy of.
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.
Chapter 8 Content-Based Image Retrieval. Query By Keyword: Some textual attributes (keywords) should be maintained for each image. The image can be indexed.
Introduction to Artificial Intelligence (G51IAI)
Neurocomputing,Neurocomputing, Haojie Li Jinhui Tang Yi Wang Bin Liu School of Software, Dalian University of Technology School of Computer Science,
COMPUTER GRAPHICS CS 482 – FALL 2014 OCTOBER 6, 2014 TEXTURE MAPPING TEXTURES BUMP MAPPING ENVIRONMENT MAPPING PROCEDURAL TEXTURING.
Real-time volumetric effects Andrei Tatarinov. NVIDIA Confidential Talk outline Introduction Part I – Generating fire with Perlin noise Part II – Generate.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2005 Tamara Munzner Textures III, Procedural.
Novel Point-Oriented Inner Searches for Fast Block Motion Lai-Man Po, Chi-Wang Ting, Ka-Man Wong, and Ka-Ho Ng IEEE TRANSACTIONS ON MULTIMEDIA, VOL.9,
Overview of Adaptive Multi-Rate Narrow Band (AMR-NB) Speech Codec
Procedural Modeling L-Systems Procedural Terrain Procedural Behavior Based on the slides from Spring 2007.
MSU CSE 803 Stockman Linear Operations Using Masks Masks are patterns used to define the weights used in averaging the neighbors of a pixel to compute.
1 Life-and-Death Problem Solver in Go Author: Byung-Doo Lee Dept of Computer Science, Univ. of Auckland Presented by: Xiaozhen Niu.
Texture Mapping from Watt, Ch. 8 Jonathan Han. Topics Discussed Texture Map to Models Bump Maps, Light Maps Environment (Reflection) Mapping 3D Textures.
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.
Video Google: Text Retrieval Approach to Object Matching in Videos Authors: Josef Sivic and Andrew Zisserman University of Oxford ICCV 2003.
Half Toning. Continuous Half Toning Color Half Toning.
Region Filling and Object Removal by Exemplar-Based Image Inpainting
Twelve painting with procedures. Overview Making shaded images with procedures Making a more elegant language Making textures with noise functions.
Perlin Noise CS4300. The Oscar™ To Ken Perlin for the development of Perlin Noise, a technique used to produce natural appearing textures on computer.
Fast Texture Synthesis Tree-structure Vector Quantization Li-Yi WeiMarc Levoy Stanford University.
MSU CSE 803 Linear Operations Using Masks Masks are patterns used to define the weights used in averaging the neighbors of a pixel to compute some result.
Noise Based Texture Noise Based Texture CMPS260 Presentation Guoping Xu Mar. 05, 2003.
Evolving Curves/Surfaces for Geometric Reconstruction and Image Segmentation Huaiping Yang (Joint work with Bert Juettler) Johannes Kepler University of.
3D Computer Graphics: Textures. Textures: texels Texture is a way of assigning a diffuse color to a pixel – can be with 1, 2 or 3D- can use maps, interpolation.
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.
Interactive Graphics Lecture 9: Slide 1 Interactive Graphics Lecture 9: Introduction to Spline Curves.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2010 Tamara Munzner Textures III Week 10,
Shading CMSC 435/634. RenderMan Light Displacement Surface Volume Imager.
1 Motivation Web query is usually two or three words long. –Prone to ambiguity –Example “keyboard” –Input device of computer –Musical instruments How can.
Shading CMSC 435/634.
Chapter 24 Gauss’s Law. Let’s return to the field lines and consider the flux through a surface. The number of lines per unit area is proportional to.
Noises & Turbulences. Why Noises? One of the most popular procedural technique Very few things in nature are regular Great variety of noises exists The.
Fitting: The Hough transform
Create Procedural Textures with Perlin Noises
Edge Detection and Geometric Primitive Extraction Jinxiang Chai.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2007 Tamara Munzner Textures II Week 9, Fri.
1 Image Matching using Local Symmetry Features Daniel Cabrini Hauagge Noah Snavely Cornell University.
Introduction to Neural Networks Introduction to Neural Networks Applied to OCR and Speech Recognition An actual neuron A crude model of a neuron Computational.
Wilf LaLonde ©2012 Comp Filters. Wilf LaLonde ©2012 Comp 4501 A filter is a matrix of weights centered on a specific pixel in an image and.
Multi Scale CRF Based RGB-D Image Segmentation Using Inter Frames Potentials Taha Hamedani Robot Perception Lab Ferdowsi University of Mashhad The 2 nd.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2007 Tamara Munzner Textures III, Procedural.
Robust Watermarking of 3D Mesh Models. Introduction in this paper, it proposes an algorithm that extracts 2D image from the 3D model and embed watermark.
Machine Vision Edge Detection Techniques ENT 273 Lecture 6 Hema C.R.
Instructor: Mircea Nicolescu Lecture 5 CS 485 / 685 Computer Vision.
Video Google: Text Retrieval Approach to Object Matching in Videos Authors: Josef Sivic and Andrew Zisserman University of Oxford ICCV 2003.
Hough Transform CS 691 E Spring Outline Hough transform Homography Reading: FP Chapter 15.1 (text) Some slides from Lazebnik.
Part II – Photorealistic Rendering (1) Texture (4) CPSC 591/691.
EE5393, Circuits, Computation, and Biology Computing with Probabilities 1,1,0,0,0,0,1,0 1,1,0,1,0,1,1,1 1,1,0,0,1,0,1,0 a = 6/8 c = 3/8 b = 4/8.

Noise | Course Overview Jim Whitehead
Perlin Noise CSU540.
Volumetric Texture Mapping
An Approximation of Volumetric Lighting
Shading CMSC 435/634.
Edge Detection The purpose of Edge Detection is to find jumps in the brightness function (of an image) and mark them.
Object Modeling with Layers
Kohonen Self-organizing Feature Maps
Linear Operations Using Masks
Math review - scalars, vectors, and matrices
Image Filtering with GLSL
Pattern Classification All materials in these slides were taken from Pattern Classification (2nd ed) by R. O. Duda, P. E. Hart and D. G. Stork, John.
Cylinders – What Are They?
Last Time B-splines Project 3 was made available
Presentation transcript:

An Image Synthesizer- Perlin Noise

Outline Noise Introduction Noise Algorithm Noise Texture Example

Why noise? Use it to create "natural" looking textures

What Noise?

Noise Algorithm Given an input point For each of its neighboring grid points: * Pick a "pseudo-random" gradient vector * Compute linear function (dot product) Take weighted sum, using ease curves

Constructing 2D noise Given an input point P, look at each of the surrounding grid points. In two dimensions there will be four surrounding grid points; in three dimensions there will be eight. In n dimensions, a point will have 2n surrounding grid points.

Constructing 2D noise For each surrounding grid point Q, choose a pseudo-random gradient vector G. Compute the inner product G. (P- Q). This will give the value at P of the linear function with gradient G which is zero at grid point Q.

Constructing 2D noise drop-off filter centered at that grid point. This filter, which makes the influence of this grid point gradually drop to zero at a unit distance, is a product of two cubic drop-off curves, one in x and the other in y. The shape of each cubic is computed by 3t 2 -2t 3.

Constructing 2D noise linear gradient multiplied by the weighting filter. This will be the contribution from that grid point to the final result.

Constructing 2D noise the contributions from each of the other three surrounding grid points.

Constructing 2D noise the contributions from each of the other three surrounding grid points.

Constructing 2D noise the contributions from each of the other three surrounding grid points.

Constructing 2D noise the sum of the contributions from the four surrounding grid points.

Computing the pseudo- random gradient: Precompute table of permutations P[n] Precompute table of gradients G[n] G = G[ ( i + P[ (j + P[k]) mod n ] ) mod n ]

Turbulence function function turbulence(p) t=0 scale = 1 while (scale > pixelsize) t + = abs(Noise(p / scale) * scale) scale/= 2 return t

noise

normal + = Dnoise(point)

sum 1/f(noise) noise(p) + ½ noise(2p) + ¼ noise(4p)...

sum 1/f( |noise|) |noise(p)| + ½ |noise(2p)| + ¼ |noise(4p)|...

sin(x + sum 1/f( |noise| )) sin( x + |noise(p)| + ½ |noise(2p)| +...)

Water.Crystal if begin_frame center = makewaves(20) for c in center normal + = wave(point- c) function wave(v) return direction(v)*cycloid(norm(v)) function makewaves(n) for i in [1.. n] center[i] = direction(Dnoise(i * [ ] )) return center

normal + = wave((point - c) * f) / f

Marble - An Example of Solid Texture function boring_marble(point) x = point[l] return marble_color(sin(x)) function marble(point) x = point[1] + turbulence(point) return marble_color(sin(x))

Flame smooth_corona(point - center) * function smooth_corona(v) {radius = norm(v) return color.of_emission(radius)} * function corona(v) radius = norm(v) dr = turbulence(v) return color..of_corona(radius + dr) * function moving_corona(v) radius = norm(v) dr = turbulence(v - frame * direction(v)) return color_of_corona(radius + dr)

Cloud