Jump to content

onoise() vs anoise


Stremik

Recommended Posts

  • 1 month later...

Both are noise function and looking the houdini help, onoise is similar to perlin noise and anoise (alligator noise) similar to worley noise.

Why do we want noise anyhow ? Well although we want some randomness we often cannot use a simple random function. For example a random function on a surface shader would either yield terrible aliasing or if we sample it long enough we'll get eventually single a mid-grey color object. This problem is somewhat related to the non-deterministic nature of random things (any computer random function is deterministic and thus not truly random, but it does a good job in making us believe it's all random). Therfore we need something more structured.

Noise has to be deterministic and it's classicaly created by layering multiple sin waves on top of each other with different amplitudes, offsets & frequencies. For finer control you usually have access to these attributes via ocataves, amplitude etc. I think both brownian and perlin noise types use mainly these harmonic function (sin, cos...) for the noise creation.

Worley had a slightly different approach though as in the first step a virtual grid is created with a single point (guide points) in it, and using a randomising noise function, these points are displaced within these grids. Now a second function does the actual noise creation possibly using somehow the informations on how these points correlate to each other (e.g. their distance to each other).

Doing so, you can get "rougher noise" with "hard" edges compared to a pure sine/cos-based noise. And this is where the alligator noise comes in. I haven't looked directly in the code on how exactly it is created, but likely it's approach is somewhat similar to the worley idea. The name suggest that the creators of the algorithm felt reminded of lots of sharp teetch, when they looked at the pattern, saw some movie with aligators the evening before and felt this would be an appropriate name it :ph34r:

Concerning the usage: Depending on the pattern type you're looking for some noise function might be better suited for your needs.

(On a sidenote: you might know that the fourier transformation allows to take any periodic function and represent it as a sum of sin() functions, but you'd need an unlimited bandwith if you'd want a perfect approximation, especially if you want to approximate something with "sharp corners" such as a saw-tooth function. High frequencies usually yield aliasing --> that's possibly one of the main reasons people tried to find other ways than using harmonic functions to create noise patterns if they want "rougher" noise types)

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...