Real-Time Rendering Cody Tankersley. Term Project Overview ◦ Desired Shaders What is noise? A...
-
Upload
silvester-parker -
Category
Documents
-
view
219 -
download
0
Transcript of Real-Time Rendering Cody Tankersley. Term Project Overview ◦ Desired Shaders What is noise? A...
The massive world of noise (with a little bit
of procedural textures)Real-Time Rendering
Cody Tankersley
Term Project Overview◦ Desired Shaders
What is noise? A Little History…. Noise Functions
◦ Some Implementation Details CPU vs GPU Noise Applications that love noise! References Demos! Administrative ‘Stuffz’
Overview
Some really cool noise [4]
Goal: Create an universe in real-time Techniques:
◦ Noise – Perlin, Simplex, Basic◦ Particle Systems
Effects Modeled:◦ Variety of planet types (rock, gas, water, etc)◦ Semi-realistic orbital paths◦ Various other elements (black holes, comets,
‘twinkling’ stars, and more)
Term Project Overview
Sun Shader◦ Animated sun spots
Rock Shader◦ Model rocky planets
Water Shader◦ Model water-based planets
Gas Shader◦ Model gas-based planets
Other Possible Shaders ◦ Sun flare shader, molten shader, black hole
shader, and more
Desired Shaders
Pseudo-Random Numbers
Way Too Many Definitions….◦ Wavelength (distance)◦ Amplitude (max to min)◦ Frequency ( 1 / wavelength)◦ Octaves (values per iteration)◦ Gradients◦ Simplex (funny ‘squashed’ shapes)
What is noise?
Noise [2]
Ken Perlin◦ http://cs.nyu.edu/~perlin/
Why he studied noise How and why noise has evolved
A Little History….
More noise [4]
Perlin Noise (1984)◦ O(2n)
Simplex (2001)◦ O(n2)
Noise Functions
3D Perlin Noise vs 3D Simplex Noise [1]
Perlin Noise◦ Generate random numbers (per iteration)◦ Sample by gradient◦ Smooth (or don’t)◦ Interpolate◦ Add value to total
Simplex Noise◦ Generate random numbers (per iteration)◦ Sample by gradient (or bits)◦ Sum◦ Add value to total
Some Implementation Details
CPU Generation
GPU Generation◦ Textures for storage
CPU vs GPU Noise
Different interpolation Techniques [4]
Texturing◦ e.g. Clouds / Wood / Marble / Etc
Particle Systems◦ Who doesn’t love fire and smoke?
Object Placement◦ Random map generation
There’s always more…◦ ….I’m just not familiar with them
Applications that Love Noise!
clouds [4]
[1] S. Gustavson, “Simplex Noise Demystified,” http://staffwww.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf (accessed Oct. 5, 2011).
[2] H. Tulleken, “How to Use Perlin Noise in Your Games,” http://devmag.org.za/2009/04/25/perlin-noise/ (accessed Oct. 5, 2011).
[3] K. Perlin, “Implementing Improved Perlin Noise,” GPU Gems, Pearson Education, Inc, Upper Saddle River, New Jersey, 2005, ch. 5.
[4] K. Perlin, “Making Noise,” http://www.noisemachine.com/talk1/9.html (accessed Oct. 5, 2011).
[5] H. Elias, “Perlin Noise,” http://freespace.virgin.net/hugo.elias/models/m_perlin.htm (accessed Oct. 5, 2011).
References
Demo Time!
Ahh, fire! [4]
Required Shaders◦ Sun Shader◦ Water/Ice Planet Shader◦ Rock Planet Shader◦ Gas Planet Shader
Desired◦ Sun Flare Particle Shader◦ Molten Planet Shader◦ Black Hole Shader◦ Comet Shader◦ Simplex / Perlin / Basic Noise implementations of all
planets
Administrative Stuffz