Blog

Archive
| All posts |
  • Noise and volumetric shaders

    published on 10/31/2010 12:05 PM

    After the last release I have been looking into adding noise to the visualizer. [url:Gradient noise|http://en.wikipedia.org/wiki/Gradient_noise) to be more specific. A lot of nice effects can be created using such a noise so I though it would make a fine addition to the visualizer.

    However there is more than one form of gradient noise out there and quite a lot of false information that claim to be gradient noise but isn't. They all also have different pros and cons that needs to be taken into account.

    A few of the variant I have looked into are

    Perlin noise The most common form of gradient noise and the 'original' gradient noise.

    Simplex noise Ken Perlin noticed a number of problems with his original perlin noise and came up with a more hardware friendly noise called simplex noise. However it's slower than perlin noise in less than 3 dimensions but much faster to calculate in over 3 dimensions.

    mnoise A very efficient noise implementation on the GPU. But has artifacts that can be seen as patterns in the noise as seen in a paper called [url:Implicit procedural textures as a means of saving texture memory|http://epubl.ltu.se/1404-5494/2007/12/LTU-HIP-EX-0712-SE.pdf).

    Gabor noise This noise looks interesting but has the problem that its 4-20 times slower to generate when compared to perlin noise. Tillable and anisotropic is just two of the nice properties the noise has.

    I ended up implementing simplex noise in a node that can output a texture in 1 to 3 dimensions. This seems to be the fastest way to generate noise even though it has it's limits. I have also changed so the noise in the expression ports now use simplex noise instead of the perlin noise that they generated before.

    Here is a example of what such a noise can look like when you combine it with a volumetric ray tracer. This runs at 30fps on my fan less GeForce 9600GT on a dual monitor setup (3200x1200). Fireball Thanks to a 5 year old paper from nvidia for the idea.

    Another example is to create wood using the noise

    Wood

    !! In other news

    • My name change went though so now I'm not Joakim Eriksson any more but instead Joakim Dahl since I took the surname of my lovely wife.
    • Plane9 now has over 250'000 downloads on the [url:winamp plugin page|http://www.winamp.com/visualization/plane9/222089)
    • [url:Scenes lists|http://www.plane9.com/Scenes/Browse) have been updated to be more compact