| 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| 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|

    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


    !! 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|
    • [url:Scenes lists| have been updated to be more compact