Friday, December 1, 2006

4D Perlin Noise in real time on GPU

A few months ago, i needed to generate noise in the pixel shader and i remembered a nice program to visualize noise in volume called HyperTexture (Author: Ondrej Jamriska, http://www.shadertech.com/shaders/ bottom of the page).


The original program use a 32x32x32 volume texture to generate the sphere. I thought it would be great if we could visualize noise in 4D but at that time hardware was no enough powerful.


My program render Noise ( Turbulence, Ridge MultiFractal, Marble, ...) using a modified 4D Perlin Simplex noise function in the pixel shader. (Original Simplex Noise shader code from Stefan Gustavson ). The volume is rendered with an axis aligned Quads list and Noise is generated each frame since it's 4D.


http://www.gamedev.net/community/forums/topic.asp?topic_id=432207
http://www.youtube.com/watch?v=9LjmS-v0EOs



3 comments:

a|x said...

Hi,

this is very impressive!
Do you happen to have some references for the 'screen-aligned quad list' technique?

Cheers,

a|x

FilouGK said...

http://www.vis.uni-stuttgart.de/vis03_tutorial/

contains many informations on multiple algorithms for volume rendering. "2D Textured Slices" = "screen-aligned quad", that you can find in "Introduction to GPU Volume Rendering (1)".

NVIDIA developer site also has some papers on volume rendering.

a|x said...

Hi,

wow, that was quick!
Thanks for getting back to me. I'll follow those links and see what I can learn!

Thanks again,

a|x