2012-01-10 12 views
6

Postaraj się jak najtrudniej, nie mogę znaleźć żadnych prawdziwych samouczków o Perlin \ Samplex Noise w 1D.Perlin Noise dla 1D?

Przeszukałem cały internet, ale nie mogę niczego znaleźć. Wszelkie witryny, które napotykam, wspominając o szumie peryferyjnym 1D są zwykle bardzo niejasne lub po prostu pokazują kod

+0

Czy kod, który znalazłeś nie działa dla Ciebie? Wygląda na to, że w Internecie jest kilka próbek kodu, które dotyczą Twojego pytania ([jeden z nich] (http://lotsacode.wordpress.com/2010/02/24/perlin-noise-in-c/)). Dostarczony kod jest dostępny i szukasz kodu, co wydaje się być problemem? –

+0

Jest to kombinacja całego kodu, który jest stosunkowo trudny do naśladowania, a jeśli jest kod, nie ma prawie żadnego wyjaśnienia na ten temat. – DubyaDubyaDubyaDot

+1

Pytasz o skomplikowany algorytm. Oczywiście każdy kod, który ją implementuje będzie trudny do naśladowania. Czy rozumiesz, co powinien zrobić kod *? Gdyby tak było, kod w sieci byłby mniej trudny do naśladowania. –

Odpowiedz

-1

Wiem, że to pytanie jest stare i zostało już odebrane, ale nie można po prostu wyjąć linii z dwuwymiarowego szumu Perlin, np. zawsze używaj 0 dla x lub y?

+0

To byłaby jednak ogromna strata wydajności. –

+0

Tak, to prawda ... – Jwosty

+0

powinien być komentarzem –

1

wiem, że to jest stare pytanie, ale tutaj jest jednym z najczystszych wyjaśnień dotyczących interpolacji pomiędzy punktami stałymi że nadrabia 1d Perlin hałasu http://webstaff.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf

Jedną z najważniejszych rzeczy wiedzieć, przydatna we wszystkich programów jest funkcja interpolacji ...

http://paulbourke.net/miscellaneous/interpolation/

skoro masz przypadkowych punktów z interpolacją smoothstep masz rodzaj gładkiej funkcji szumu 1d.

zobacz smoothstep na wiki. dużo na ten temat przez google. https://en.wikipedia.org/wiki/Smoothstep

najwyraźniej hiperłącze jest niestabilny, to jest tutaj znowu:

Simplex hałas demystified

Ken Perlin przedstawiony simplex „szum”, zastępstwo dla swojego klasycznego algorytmu szumu. Classic "Hałas Perlina" zdobył dla niego nagrodę akademicką i stał się powszechnym prymitywem grafiki komputerowej na przestrzeni lat, ale z perspektywy czasu ma sporo ograniczeń. Sam Ken Perlin zaprojektował hałas simplex specjalnie, aby pokonać te ograniczenia, a on spędził dużo dobrego myślenia na ten temat. Dlatego jest to lepszy pomysł niż jego oryginalny algorytm.

Kilka z bardziej znaczących zalet należą:

• Simplex hałas ma mniejszą złożoność obliczeniową i wymaga mniej mnożenia.

• Szumy simpleks są skalowane do wyższych wymiarów (4D, 5D i więcej) przy znacznie niższych kosztach obliczeniowych, złożoność dotyczy wymiarów zamiast klasycznego szumu.

• Szum prostaty nie ma zauważalnych artefaktów kierunkowych.

• Szumy Simplex mają dobrze zdefiniowany i ciągły gradient wszędzie, gdzie można je obliczyć dość tanio.

• Szum prostaty jest łatwy do wdrożenia w sprzęcie.

Niestety, nawet na początku 2005 r. Bardzo niewielu ludzi zdaje się rozumieć hałas simplex i prawie nikt go nie używa, dlatego to napisałem. Spróbuję nieco dokładniej wyjaśnić algorytm, niż Ken Perlin miał czas zrobić notatki z kursu z Siggraph 2001 i 2002, i mam nadzieję, że wyjaśnię, że nie jest to tak trudne do uchwycenia, jak na pierwszy rzut oka wydaje się. Z tego, czego się nauczyłem, najbardziej dezorientuje ludzi nieprzenikniona implementacja referencyjna Kena Perlina w Javie.Przedstawia bardzo zwarty i nieskomentowany kod do demonstruje zasadę, ale ten kod wyraźnie nie ma być czytany jako samouczek. Po kilku próbach zrezygnowałem z kodu i przeczytałem jego papier, który był o wiele bardziej przejrzysty.

Nie krystalicznie jasne, ponieważ prezentuje algorytm głównie w słowach i fragmentach kodu. Byłbym wdzięczny za kilka wykresów i rycin oraz kilka pomocnych równań i to właśnie próbuję tutaj zapewnić, aby ułatwić innym zrozumienie wielkości i piękna szumu simpleksowego. Będę również wyjaśniał rzeczy w jednym i dwóch wymiarach, aby ułatwić wyjaśnienie przy pomocy wykresów i obrazów, a następnie przejść do trzech i czterech wymiarów. Hałas klasyczny Aby wyjaśnić hałas simpleks, dobrze jest zrozumieć klasyczny dźwięk Perlin . Widziałem sporo złych i źle objaśnionych wyjaśnień w tej dziedzinie, więc aby upewnić się, że wykonano niezbędne prace przygotowawcze, przedstawię najpierw klasyczny szum Perlina.

Perlin hałasu jest tak zwane szumy gradient, co oznacza, że ​​zestaw pseudolosową gradientu w regularnych odstępach punktów w przestrzeni, i interpolacji gładką funkcji pomiędzy tymi punktami. Aby wygenerować szum Perlina w jednym wymiarze, kojarzysz pseudolosowy gradient (lub nachylenie) dla funkcji szumu z każdą współrzędną całkowitą i ustawiasz wartość funkcji dla każdej liczby całkowitej na na zero.

Dla danego punktu gdzieś pomiędzy dwoma punktami całkowitych, wartość jest interpolowana pomiędzy dwie wartości, czyli wartości, które byłyby wynikiem jeśli najbliżsi liniowe stoki z z lewej i z prawej strony został ekstrapolować na punkt w pytaniu. Ta interpolacja jest płynnym krokiem.

+0

Link jest martwy –

+1

To nie był martwy, kliknąłem na niego tego samego dnia, kiedy go sprawdziłeś. to żyje. –

+0

Przykro mi, teraz działa. –

Powiązane problemy