The Most Famous Algorithm In Computer Graphics

preview_player
Показать описание

Perlin noise is something many of you have heard of, but how does it actually work?

Topics covered: how computers generate random numbers, pseudo random number generators, hash functions, linear interpolation, bilinear interpolation, easing functions, value noise, gradient noise, perlin noise

Support me on Patreon!

Socials:
Code: Will be available in the future, for now please check out the provided resources

Resources:

Music:
Afternoon Break - Persona 3 OST
In A Moment's Time - Skullgirls OST
Junes Theme - Persona 4 OST
New Game - WORLD OF HORROR OST
Midori Eyes - Paradise Killer OST
GO!GO!STYLE - Paradise Killer OST
Sandgem Town (Day) - Pokemon Diamond OST
During The Test - Persona 3 OST
Ode To Heroes - Metaphor ReFantazio OST

Thanks for watching!

This video is dedicated to my friend, Alotryx.

#acerola #gamedev #godot #graphics #shaders
Рекомендации по теме
Комментарии
Автор


was sick while recording so sorry about that

Acerola_t
Автор

I took a computer graphics class at NYU taught by Ken Perlin, he's a super cool guy. During our Inverse Kinematics section of the course he casually told a story - same way someone would casually talk about going to a bar - about visiting Valve and talking to a programmer about IK, and how his code (that he was teaching in that lecture) "accidentally" ended up in Half Life 2. Best course I ever took :)

miss-magic-maya
Автор

Bro left us with a simplex cliff hanger

AyushBakshi
Автор

my favorite noise maker, ron perlinman

linus
Автор

2:56 lmfao i love baldwig for the white noise comparasion

mfuji
Автор

I like how I understand like 10-20% of your videos, because I don't do programming, but still love watching them. Every time you upload I just stop doing whatever I do right now and watch the video. Great stuff, keep it up man







also love the screenshot of Ludwig and his mountain-like hair

Atquicktie
Автор

I love that Perlin Noise was named after someone named Perlin. Love stuff like that.

shindigs
Автор

the ludwig tip to tip photo was uncalled for 😭😂

shayes.x
Автор

Can't wait for the video on Simplex noise. I've been using it almost exclusively over Perlin noise, at least the open-source version of it as the official implementation was patented until recently, the math behind it is also quite interesting.

DreadKyller
Автор

thanks acerola for releasing the most intuitive video on perlin noise a few months after i bashed my brain against the screen to try and understand it myself

raeplaysval
Автор

I was hanging out with Ken Perlin at a game development conference many years ago - it was great to put a face to the algorithm. I think of him every time I open the GIMP filter menu.

jimmy
Автор

But Acerola! You cant just mention simplex noise like that and end the video!

LesusX
Автор

You did a great job of explaining hash functions there. I come at this from a cryptography standpoint and the properties you described actually hold true for cryptographic hash functions too, in particular the point about the output of the hash varying significantly for any small change in input. The key difference is in tradeoffs: non-cryptographic hashes primarily optimise for speed and a reasonable output probability distribution, whereas cryptographic hashes have to optimise for extremely good probabiliy distribution (practically indistinguishable from 2^-n per output), preimage resistance (i.e. given some hash H(M) for M, finding M is hard), second preimage resistance (i.e. given some message M and its hash, finding some message M' such that H(M) == H(M') for M != M' is hard), and collision resistance (i.e. finding two distinct arbitrary messages whose hashes are equal is hard). That last property is also useful in non-cryptographic hash functions since it limits the probability of pathological performance cases in contexts such as hashmaps. The same largely goes for PRNGs: a non-cryptographic PRNG design typically optimises for performance and sufficiently few statistical correlations between outputs to have the appearance of being random (e.g. passing some or all of the DieHard tests), but does not typically concern itself with the problem of state recovery, seed recovery, or future output prediction in a threat model where an attacker can observe values in the output sequence (e.g. LCGs seeds can typically be recovered by observing just a few sequential output values). These days in we typically call the cryptographic PRNG-equivalent a DRBG (deterministic random bit generator) rather than an RNG, and these DRBGs have much stricter requirements than PRNGs in terms of the probability distribution of outputs, statistical independence of all output bits, and it being computationally infeasible to recover the seed (key) even if an attacker can capture and analyse gigabytes of output data from it; typically we use a strong stream cipher (e.g. AES-CTR or ChaCha20) as the underlying primitive. We used to refer to these as CSPRNGs (cryptographically secure pseudorandom number generators) but that term is now rather ambiguous as it also includes non-deterministic RNGs, which typically source external entropy from quantum phenomena such as Johnson-Nyquist noise or shot noise in hardware and continuously integrate it into the state of a DRBG, making it non-deterministic. Bit of an infodump there, but always a fun topic :)

gsuberland
Автор

Finally, an acerola video I can fully understand

Benetheburrito
Автор

haha the image from the ludwig & michael reeves Tip to Tip Japan Tour at 2:56 xD

rexbluefox
Автор

2:57 HAHA Ludwig and Michael making shiroi noise in japan

UnofficialCyane
Автор

3:20 Sponsorship makes me angry, cat make me happy. Perfectly balanced.

EnzoAfonso_
Автор

I like that noise generators don't require you to sample from a texture so they are VERY parallelisable

isbestlizard
Автор

Blinn-Phong mentioned!!! 🥳
I wish Phong could see how influential his work has been.

AnglUki
Автор

Any time I need some randomness in my shader code, Perlin noise is the way to go.

LucydDev
visit shbcf.ru