Muuuuczek567 Opublikowano 17 Października 2011 Udostępnij Opublikowano 17 Października 2011 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 Więcej opcji udostępniania...
Sernat Opublikowano 17 Października 2011 Udostępnij Opublikowano 17 Października 2011 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 Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 17 Października 2011 Autor Udostępnij Opublikowano 17 Października 2011 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 Więcej opcji udostępniania...
TheMarcQ Opublikowano 17 Października 2011 Udostępnij Opublikowano 17 Października 2011 . Został poruszony m. in. temat tzw. 'Perlin noise'. Jest to metoda tworzenia bardzo wydajnego i realistycznego szumu, Jak ustawie ciagle rysowanie co step i zwieksze do 9999 room_speed otrzymuje 5 fps, trzebaby jeszcze nad tym popracowac.... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sernat Opublikowano 17 Października 2011 Udostępnij Opublikowano 17 Października 2011 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 Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 17 Października 2011 Autor Udostępnij Opublikowano 17 Października 2011 @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 Więcej opcji udostępniania...
Sernat Opublikowano 17 Października 2011 Udostępnij Opublikowano 17 Października 2011 @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 Więcej opcji udostępniania...
kt1117 Opublikowano 17 Października 2011 Udostępnij Opublikowano 17 Października 2011 Ja być może jestem jakiś głupi, ale wytłumaczcie mi, czemu nie można dać po prostu losowych pikseli czarny-biały? Przecież efekt i tak byłby podobny. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 17 Października 2011 Autor Udostępnij Opublikowano 17 Października 2011 @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 Więcej opcji udostępniania...
Sernat Opublikowano 17 Października 2011 Udostępnij Opublikowano 17 Października 2011 I do tego zmierzam. A ty mi piszesz, że te kształty nie mają być "logiczne i regularne". Muszą mieć przede wszystkim łagodne przejścia w plamkach. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 17 Października 2011 Udostępnij Opublikowano 17 Października 2011 Aha, dobra, wiem o co biega. Np. Zrobić takie losowe piksele, ale oddalone o siebie o np. 30 pkt. i teraz zrobić tak, żeby ten odcień szarego płynnie przechodził między tymi punktami. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 17 Października 2011 Autor Udostępnij Opublikowano 17 Października 2011 @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 Więcej opcji udostępniania...
kt1117 Opublikowano 17 Października 2011 Udostępnij Opublikowano 17 Października 2011 Jak będę miał czas to się tym pobawię. Może kiedyś mi się przyda. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
alwin Opublikowano 17 Października 2011 Udostępnij Opublikowano 17 Października 2011 A chcecie przykłady pełnego perlina w GMie(z wykorzystaniem dll, z pełnymi żródłami c++)? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 18 Października 2011 Autor Udostępnij Opublikowano 18 Października 2011 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 Więcej opcji udostępniania...
alwin Opublikowano 18 Października 2011 Udostępnij Opublikowano 18 Października 2011 Łap, przeanalizuj sobie:) Są też źródła cpp i gmk. https://gmclan.org/up6389_3_Perlin_Noise_V2.html Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 19 Października 2011 Autor Udostępnij Opublikowano 19 Października 2011 @alwin: uuu... Ten "Perlin noise" na jednej oktawie tworzy się w 1563 ms, mój na pięciu - w 1344 ms. Tamten na pięciu oktawach - w 2640 ms, mój na jednej - w 33 ms. Słabo... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę