01 - Perlin Noise
Random so súvislosťou
Last updated
Random so súvislosťou
Last updated
Dobrý náhodný generátor nám vracia čísla bez ohľadu na vzťah s ich predchodcom. Avšak pri sledovaní prírodných procesov obvykle vidíme plynulé prechody a postupné zmeny.
Práve pre pohyb sa nám oplatí zapojiť Perlin noise ktorý ho premení na plynulejší.
Pomenovaný po svojom objaviteľovi - Ken Perlin.
Používa sa na modelovanie pohybu, textúr a terénu.
Noise(x) vracia vždy číslo medzi 0 a 1 - a preto ho vždy potrebujeme namapovať na nami očakávaný rozsah - buď prenásobením (* width
) alebo pompcou funkcie map()
Perlin noise si môžeme predstaviť ako pohyb v priestore noise-u (v oblakoch). Kde pre dané koordináty x
(príp. aj y
a z
) vrátia "nejaké" číslo.
noise(x)
noise(x,y)
noise(x,y,z)
Doplň _____
:
Aký parameter použiješ pre noise()
? (Tip: premenná xoff
).
Aký prírastok nastavíš pre xoff
? (Tip: Skús hodnoty ako 0.02
alebo 0.05
).
Spusti program a pozri si výsledok.
Experimentuj:
Zmeň hodnotu prírastku xoff
(napr. 0.01
alebo 0.1
) a pozoruj, ako sa mení textúra.
Skús použiť rôzne hodnoty pre výšku čiar v line()
.
Otvor random walker z minulej lekcie a uprav ho tak, aby používal perlin noise. Hint: map()
Aplikuj perlin noise na farbu.
Mimochodom keď už sme pri perlin noise, používa sa aj na oblaky / terragen / mramor a podobne... k tomu sa ale dostaneme inokedy.
Náhodilosť a noise má množstvo aplikácií a viete ich vyziť od simulácie pohyby cez generovanie oblakov cez terén, zvuk atď. V tom spočíva mimochodom trocha aj pasca perlin noise - jeho pekný "organický" priebeh láka priam až k nadmernému používaniu. Avšak nateraz si vyskúšajme ešte aplikáciu v niečom vizuálne príťažlivejšom, než náhodne sa hýbanie priestorom.
Poďme si vyskúšať pre vás určite už známu bezrierovú krivku v prostredí p5.js. Dokumentácia k metóde bezier() je tu:
Čo sa stane, keď parametre beziérovej krivky budeme generovať pomocou perlin noise? Pohrajte sa s príkladom nižšie:
noise()
bezier()
v referenčnej príručke