NOISE(3G)

πŸ“¦
version 1.0~svn33624 Β· 4 versions
, in ubuntu jammy, ubuntu noble

πŸ’– NAME πŸ’–

noise β€” bestie, this is the one that generates values with a pseudo-random noise function ✨

so real quick, this page lives in section 3G of the manual (iykyk, that's the OpenGL shader function corner of the world) πŸŽ€


🌸 DECLARATION 🌸

okay so here's the whole squad, no notes:

float noise1(genType x);

vec2 noise2(genType x);

vec3 noise3(genType x);

vec4 noise4(genType x);

four besties, four different return shapes, one shared vibe πŸ’…


✨ PARAMETERS ✨

  • x β€” this is the value you're seeding the noise function with. like, the lil starting point that everything grows from πŸ¦‹

🫢 DESCRIPTION 🫢

okay so noise1, noise2, noise3 and noise4 hand you back noise values β€” could be a vector, could be a scalar β€” based on the input value x. The noise function is a stochastic function, which is the fancy way of saying it's here to crank up your visual complexity, periodt. 🌈

here's the thing though: the values that come out give the appearance of randomness, but they are not truly random. it's giving random, it's not actually random. very demure, very mindful. πŸ™ˆ

They're defined to have the following characteristics, and you're gonna wanna remember these:

  • The return value(s) are always in the range [-1.0,1.0], and cover at least the range [-0.6, 0.6], with a Gaussian-like distribution. πŸ“Š
  • The return value(s) have an overall average of 0.0. balanced. centered. main character energy.
  • They are repeatable, in that a particular input value will always produce the same return value. same input, same output, every single time, no cap πŸ”₯
  • They are statistically invariant under rotation β€” i.e., no matter how the domain is rotated, it has the same statistical character. spin it however you want bestie, the vibe does not change πŸ’«
  • They have a statistical invariance under translation β€” i.e., no matter how the domain is translated, it has the same statistical character. slide it around, same vibe ✨
  • They typically give different results under translation. (yes, both of those are true at once, it's giving nuance πŸ’…)
  • The spatial frequency is narrowly concentrated, centered somewhere between 0.5 to 1.0. 🎯
  • They are C1 continuous everywhere β€” i.e., the first derivative is continuous. smooth like butter, no jagged edges, we love to see it 🧈

πŸ‘‘ VERSION SUPPORT πŸ‘‘

the table said "every function, every version, all checks" so let me just spell that out for you so nothing gets lost, bestie. every single one of these is a βœ” in OpenGL Shading Language Version 1.10, 1.20, 1.30, 1.40, 1.50, 3.30, 4.00, 4.10, 4.20, 4.30, 4.40 and 4.50:

  • noise1 β€” βœ” 1.10, βœ” 1.20, βœ” 1.30, βœ” 1.40, βœ” 1.50, βœ” 3.30, βœ” 4.00, βœ” 4.10, βœ” 4.20, βœ” 4.30, βœ” 4.40, βœ” 4.50
  • noise2 β€” βœ” 1.10, βœ” 1.20, βœ” 1.30, βœ” 1.40, βœ” 1.50, βœ” 3.30, βœ” 4.00, βœ” 4.10, βœ” 4.20, βœ” 4.30, βœ” 4.40, βœ” 4.50
  • noise3 β€” βœ” 1.10, βœ” 1.20, βœ” 1.30, βœ” 1.40, βœ” 1.50, βœ” 3.30, βœ” 4.00, βœ” 4.10, βœ” 4.20, βœ” 4.30, βœ” 4.40, βœ” 4.50
  • noise4 β€” βœ” 1.10, βœ” 1.20, βœ” 1.30, βœ” 1.40, βœ” 1.50, βœ” 3.30, βœ” 4.00, βœ” 4.10, βœ” 4.20, βœ” 4.30, βœ” 4.40, βœ” 4.50

not a single ❌ in sight. the way that they ate and left no crumbs πŸ˜­πŸ‘‘


Copyright Β© 2011-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.


Copyright Β© 2011-2014 Khronos Group


and that's the whole page bestie!! πŸŽ€ this lil masterpiece is from [FIXME: source] and it's dated 01/03/2018 β€” it's the NOISE(3G) page, go forth and make some extremely non-random noise, mwah πŸ’–βœ¨πŸ¦‹
πŸ“¦ where this page comes from