Skocz do zawartości

Value noise


Rekomendowane odpowiedzi

Ostatnio dużo mówiło się o generowaniu proceduralnym. Został poruszony m. in. temat tzw. 'Perlin noise'. Jest to metoda tworzenia bardzo wydajnego i realistycznego szumu, przydatnego np. właśnie do generowania terenu, chmur itp.

Metoda ta jest dość trudna w implementacji. Na szczęście istnieje kilka prostszych sposobów generowania szumów, a ten przykład zaprezentuje jeden z nich.

Value noise - TUTAJ

Generowane są tylko czarnobiałe obrazki (wzrost wydajności), ale bez problemu można generować także kolorowe, wystarczy tylko minimalnie przerobić. Przypomina Perlina, co?

 

Komentować :3

Odnośnik do komentarza
Udostępnij na innych stronach

Złożoność tej metody jest olbrzymia - a właściwie liczba obliczeń, jakich musi przy tym dokonać procesor (oczywiście relatywnie do tego, co przykład nam oferuje).

 

Osobiście zrobiłbym to kompletnie inaczej (takie suche obliczenia nie są dla mnie nic warte, szczerze).

Ostatnio dużo mówiło się o generowaniu proceduralnym. Został poruszony m. in. temat tzw. 'Perlin noise'. Jest to metoda tworzenia bardzo wydajnego i realistycznego szumu, przydatnego np. właśnie do generowania terenu, chmur itp.

No hiperbola jak hiperbola, ale to już totalne wyolbrzymienie, wręcz bzdura :P . To, że jedna osoba w SB zaprezentowała takowy przykład i jedna o niego zapytała, o niczym nie świadczy ;) .

 

Daję ci mocne 3/5 za efekt ;) .

 

P. S. Zanim się ktoś przyczepi, że słaba ocena: efekt nie do końca jest poprawny, jeśli ktoś spojrzy obiektywnie na ten szum lub stworzy przykład przedstawiający go w praktyce, np. wykorzysta go jako poziomicę, zauważy, że nie powstają regularne i logiczne kształty. Tyle ode mnie.

Odnośnik do komentarza
Udostępnij na innych stronach

Złożoność tej metody jest olbrzymia - a właściwie liczba obliczeń, jakich musi przy tym dokonać procesor (oczywiście relatywnie do tego, co przykład nam oferuje).

Hmm... Jeśli znasz algorytm do generowania szumów, który będzie w GM-ie szybszy (lub lepiej - napiszesz jego implementację), to tutaj napisz. Jestem bardzo ciekaw. (poważnie : D)

To, że jedna osoba w SB zaprezentowała takowy przykład i jedna o niego zapytała, o niczym nie świadczy .

Być może pominąłeś fakt, iż YXE wspominał coś o tym, że do generowania terenu na konkurs może być przydatny 'Perlin noise'. Choć to też niewiele świadczy.

jeśli ktoś spojrzy obiektywnie na ten szum lub stworzy przykład przedstawiający go w praktyce, np. wykorzysta go jako poziomicę, zauważy, że nie powstają regularne i logiczne kształty.

Rzeczywiście. Szum musi mieć "regularne i logiczne kształty" ; )

To zależy od parametrów i od funkcji losującej.

E: zbadałem złożoność obliczeniową tego szumu. Liczba zamalowań pikseli wynosi:

p1^2*((4^n-1)/3), gdzie:

p1 - to długość boku pierwszego surface'a; w przykładzie równy 8

n - liczba oktaw - w tym przypadku 5

W przykładzie wykonuje się 21824 zamalowań pikseli, a największy surface ma ich 16384.

Odnośnik do komentarza
Udostępnij na innych stronach

Ale on stworzył wyrób do tamtego podobny, nieco okrojoną wersję. No i to nie służy do generowania realtime, lol :D .

 

Rzeczywiście. Szum musi mieć "regularne i logiczne kształty" ; )

To zależy od parametrów i od funkcji losującej.

Haha. Nie rób ze mnie debila, proszę :P . Było najlepiej od razu dać generowanie losowych pikseli (biały ; czarny). Bo szum nie musi mieć logicznych kształtów ;) .

Być może pominąłeś fakt, iż YXE wspominał coś o tym, że do generowania terenu na konkurs może być przydatny 'Perlin noise'. Choć to też niewiele świadczy.

Jednakże "Ostatnio dużo mówiło się o generowaniu proceduralnym. Został poruszony m. in. temat tzw. 'Perlin noise'." wciąż jest niezłym wyolbrzymieniem.

Odnośnik do komentarza
Udostępnij na innych stronach

@TheMarcQ:

1. to nie jest 'Perlin noise'

2. nie wiem, czy jakikolwiek algorytm wykonałby w GM-ie generowanie dobrej jakości szumu w czasie rzeczywistym.

 

@Sernat:

Haha. Nie rób ze mnie debila, proszę

Już nie będę :3

Tzn. jeśli Cię uraziłem, to od razu mówię, że nie chciałem.

Było najlepiej od razu dać generowanie losowych pikseli (biały ; czarny).

Ale to już nie byłby przykład 'value noise', ale 'jak namalować różne piksele na surface'u'.

"Ostatnio dużo mówiło się o generowaniu proceduralnym. Został poruszony m. in. temat tzw. 'Perlin noise'." wciąż jest niezłym wyolbrzymieniem.

No trochę tak. Mnie jednak wystarczyło, żeby wykonać przykład. Można się spierać, czy to, co zrobiłem, można uznać za generowanie proceduralne (w końcu surface'y przechowywane są w pamięci), ale być może komuś się przyda.

Odnośnik do komentarza
Udostępnij na innych stronach

@TheMarcQ:

1. to nie jest 'Perlin noise'

2. nie wiem, czy jakikolwiek algorytm wykonałby w GM-ie generowanie dobrej jakości szumu w czasie rzeczywistym.

 

@Sernat:

 

Już nie będę :3

Tzn. jeśli Cię uraziłem, to od razu mówię, że nie chciałem.

Właściwie to zrobiłeś z siebie bardziej :P . Mi nic do tego.

Ale to już nie byłby przykład 'value noise', ale 'jak namalować różne piksele na surface'u'.

A widzisz :D . Czyli jednak istnieje jakaś różnica ;) .

Odnośnik do komentarza
Udostępnij na innych stronach

@TheMarcQ: takie losowe piksele nie będą przypominały chmur, nie przydadzą się przy robieniu map wysokości itp.

@Sernat:

Właściwie to zrobiłeś z siebie bardziej :P

Nikt nie jest idealny : (

Odnośnik do komentarza
Udostępnij na innych stronach

@kt1117: coś w tym stylu. Możesz przeczytać więcej na różnych stronach (głównie po angielsku).

@Sernat: widocznie źle cię zrozumiałem; myślałem, że masz na myśli, żeby kształty w tym szumie coś przypominały, np. litery, figury itp. To oczywiste, że ogólna struktura takiego szumu powinna być jednolita (żadnych przeskoków z niskich do wysokich wartości i vice versa).

Odnośnik do komentarza
Udostępnij na innych stronach

Byłoby miło :rolleyes:

W C++ będzie dużo szybciej generować szum niż w GM, więc przyda się bardziej.

 

 

Znalazłem na YoYo przykład korzystający praktycznie z tego samego kodu do generowania szumu, co mój. Co ciekawe, ponoć jest to 'Perlin noise', co jest bzdurą. Co jeszcze ciekawsze, ponoć bardzo szybko to działa. Biorąc pod uwagę, że kod jest prawie identyczny do mojego, też jest to bzdura.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...