Dawidds Opublikowano 26 Sierpnia 2009 Udostępnij Opublikowano 26 Sierpnia 2009 DOWNLOAD v1.0 //Z błędem ;] Mój serw OdSiebie v1.01 //Aktualna wersja, bez bugu :P Mój serw Zainspirowany postem PsichiXa w shoutboxie, że zaraz da nam przykład wody, oddaje w Wasze ręce prosty (tj. prosty kod mam na myśli) system zniekształceń al'a woda. Jak tylko wpadnę na jakiś w miarę wydajny pomysł dodam do tego dynamiczne oświetlenie, dzięki czemu będzie można to zastosować w grze top-down, i będzie to wyglądać, że tak to nazwę, trójwymiarowo :P Tym razem nie mam ochoty się zbytnio rozpisywać, więc przejdę do wyjaśniania argumentów. iwave_init(width, height); No, chyba wiadomo. Walimy to w Create jakiegoś obiektu, który ma malować falę, argumenty chyba są jasne :P ivawe_draw(surf, x, y, precision, wavesize, wavespeed); Maluje podanego surface'a zniekrztałcając go, na podanej pozycji. precision - jak precyzyjny ma być efekt. Im większa wartość, tym mniejsza wydajność, ale za to dokładniejsze malowanie (radzę samemu poeksperymentować z argumentami i się dowiedzieć, co to dokładnie daje... :P ). wavesize - jak duże mają być fale. Zalecana wartość od 0 do 1. wavespeed - jak szybko nasz obrazek ma falować, chyba wsyztsko jest jasne No, więcej mi się pisać nie chce ;P Działanie chyba każdy zrozumie, bo wbrew pozorom jest to banalny do napisania efekt. Screenu z domyślnych wartości funkcji nie ma sensu wrzucać, bo na statycznym obarzku po rpostu nie widać efektu :P Wrzucę za to screena z bardziej hardcorowych ustawień :D http://eportal.boo.pl/upload/file.php?id=2_1.png Edit: Aktualizacja. Wywaliłem ostatni argument (wavelength) - otóż doszedłem do wniosku, iż jeśli chcemy, aby fale był "równe" (tzn. tak samo duże poziomo i pionowo), musi on przywrzeć wartość 1/wavesize. Teraz nie trzeba się nim martwić - ustawienie swojej "własnej" fali ogranicza się do wyboru jakości, skali i prędkości :P Btw, macie jakieś pomysły na przykłady :P ? W najbliższym czasie prawdopodobnie napiszę gesty myszy, fake-3d, i engine smug do pocisków ze spritów (on już w sumie jest gotowy, tylko go w funkcje obudować muszę) ale jakoś, nie mam teraz na to ochoty. Napisałbym sobie coś, ze tak to nazwę, graficznego :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Misiek999 Opublikowano 26 Sierpnia 2009 Udostępnij Opublikowano 26 Sierpnia 2009 Jak dla mnie bardzo ładny efekt i dobrze napisany. 5/5 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Axlii Opublikowano 26 Sierpnia 2009 Udostępnij Opublikowano 26 Sierpnia 2009 spoko efekt ładnie napisany 5/5 ale nie skorzystam :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 26 Sierpnia 2009 Udostępnij Opublikowano 26 Sierpnia 2009 dzisiaj nie skoncze falowania, bo znikam, ale jutro je zrobie i porownamy, czy szybciej wyjdzie pixel shaderem czy GMowym surface i prymitywy ;) ah i mam dla Ciebie nowe wyzwanie - efekt frost :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 26 Sierpnia 2009 Autor Udostępnij Opublikowano 26 Sierpnia 2009 Efekt frost O.o ? Co to? Co, że z obrazka robi mi się taki o zimowym klimacie :D ? Ja nie wiem, Shocker nie wie, na Googlach nie ma albo ja nie potrafię szukać :P Ed: A może coś ala szum rgb :D ? Nic innego na myśl mi nie przychodzi. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZeroXbot Opublikowano 26 Sierpnia 2009 Udostępnij Opublikowano 26 Sierpnia 2009 Czyźby chodziło o szron? Jak coś się zamraża to zachodzi tak fajnie szronem więc może o to chodzi. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 26 Sierpnia 2009 Autor Udostępnij Opublikowano 26 Sierpnia 2009 Też kojarzy mi się coś szronowatego, ale ja bardziej myślałem o czymś w stylu: I, jeśli może być w tym udział losowości to mam już na to zalążek pomysłu ;d Ed: http://photoshop.pl/node/7182 Pomyśle nad tym, ale to chyba proste nie będzie... :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 26 Sierpnia 2009 Udostępnij Opublikowano 26 Sierpnia 2009 o wlasnie o ten efekt chodzi :) zaloze sie ze nie zrobisz tego w GM aby bylo wydajne :P (czytaj: generowane realtime) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Nobody Opublikowano 27 Sierpnia 2009 Udostępnij Opublikowano 27 Sierpnia 2009 Było coś takiego na forum yoyogames. PS: zniekrztałcając 3/5. Taki sobie efekt zwłaszcza, że widać kilka rysujących się zniekształconych surface'ów :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 27 Sierpnia 2009 Udostępnij Opublikowano 27 Sierpnia 2009 tylko żeby było jasne o jaki efekt konkretnie mi chodzi (bo kilka osób podało różniące się) to zależy mi na tym właśnie: http://photoshop.pl/node/7182 :) choć ten drugi efekt z oszronieniem powierzchni też bym chętnie zobaczył w GM. ja zrobię te 3 efekty (falowanie ekranu, frost i oszronienie powierzchni) i zrobimy takie małe testy wydajności, jakości i ogólnej efektywności :D hmm, mam pomysł, aby dać takowy contest, gdzie byśmy prowadzili bitwę na efekty graficzne :D no to do dzieła :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 27 Sierpnia 2009 Autor Udostępnij Opublikowano 27 Sierpnia 2009 Ok, ale korzystamy z czystego gmla... ;] Dobra, już się za to biorę ^_^ EDIT: Mwahahaha :> http://eportal.boo.pl/upload/file.php?id=4.png Są jedynie dwa haczyki - pierwsze, że nie jest to zbyt wydajne rozwiązanie (aczkolwiek te 60fps powinno się wyrobić), i drugie, że to jest z udziałem losowości :P Jedynym widocznym sposobem na zrobienie tego bez użycia random() jest jak dla mnie chyba tylko zapisanie jakby maski zniekrztałceń do jakieś tablicy - ale takie coś dla większych obrazków nie ma sensu. Dobra, idę to jakoś zoptymalizować ;] Ed: O sory, nie zauważyłem, że mój ostatni post :P Ed2: 200fps dla obrazka 800x600. No ale powiedzmy, że zrobiłem ;> Mów teraz co to oszronienie powierzchni :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 27 Sierpnia 2009 Udostępnij Opublikowano 27 Sierpnia 2009 Ok, ale korzystamy z czystego gmla... nenene, nie tylko :P chodzi o to aby porównać efekty tworzone różnymi sposobami, grunt aby wszystko odpalało się w GMie. Moim celem jest szukanie takich rozwiązań w GMie które dały by podobny efekt i wydajnościowo były sobie bliskie z innymi technikami. Tak więc różne U3D, irrlichty, czy inne silniki też są dozwolone, ale efekty muszą być napisane własnoręcznie, bez gotowców :P Zaraz założę temat na arenie :) EDIT: mam nadzieje ze zrobisz teraz ten efekt dynamicznie, bo to powinno byc generowane realtime. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZeroXbot Opublikowano 27 Sierpnia 2009 Udostępnij Opublikowano 27 Sierpnia 2009 Ale ty szybki jesteś! :o O ile lat starszy jesteś niż podałeś? ;> Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 27 Sierpnia 2009 Udostępnij Opublikowano 27 Sierpnia 2009 http://mattburdette.com/extra/frost/frost_final_comp.mov EDIT: Contest będzie wymagał oddania do testów EXEca wraz z wyświetlaniem FPS i ingerencją w ilość klatek na sek. więc przygotuj takowe sobie ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 27 Sierpnia 2009 Autor Udostępnij Opublikowano 27 Sierpnia 2009 Wczoraj przez to zasnąłem o 1 ;[ (bo myślałem nad tym, lol) A wybrałem i tak najprostszy sposób, który mi do głowy wpadł :D http://eportal.boo.pl/upload/file.php?id=frost.gmk Stałego przekształcenia (no, żeby frost nie zmieniał się co stepa, bo to wygląda głupio) nie chce mi się robić - nie wiem, ile gm by zapisywał tablicę dwuwymiarową 800x600 :D A innej możliwości zrobienia, żeby to było w gołym gmie chyba nie ma. Najlepszy efekt byłby, gdyby przejechać to pętlą nie dwa a trzy razy - teraz prawe i lewe krawędzie nie są do końca sfrostowane, ale powiedzmy umownie, że nie widać tego aż tak bardzo :P Ed: O kurde, robi się coraz ciekawiej :D Mogę wykorzystywać grafiki, tak :P ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 27 Sierpnia 2009 Udostępnij Opublikowano 27 Sierpnia 2009 tak, ale wszystko musi byc realtime pamietaj, grafiki jedynie moga byc statycznie dodane :) no chyba ze dany efekt wymagalby inaczej, ale w temacie wszystko opisze Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 27 Sierpnia 2009 Autor Udostępnij Opublikowano 27 Sierpnia 2009 No lol, przecież nie walnę tam filmiku :P btw, a gdzie ten temat : d ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Nobody Opublikowano 27 Sierpnia 2009 Udostępnij Opublikowano 27 Sierpnia 2009 Dawidds, to jeszcze nie to ^^ Widoczne jest rozmazywanie obrazka tylko poziomo. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 27 Sierpnia 2009 Autor Udostępnij Opublikowano 27 Sierpnia 2009 Górne i dolne krawędzie są takie, jak trzeba :P Jak już się czepiasz szczegółów: GML //frost(surf) surface_set_target(sfrost); draw_surface(argument0, 0, 0); //202, 248 rndragex = 5; rndragey = 3; rndragex2 = 1; xx = 0; repeat(799) { draw_surface_part(sfrost, xx, 0, 1, 600, xx, 0-rndragex+random(2*rndragex)); xx += 1; } yy = 0; repeat(599) { draw_surface_part(sfrost, 0, yy, 800, 1, 0-rndragey+random(2*rndragey), yy); yy += 1; } xx = 0; repeat(799) { draw_surface_part(sfrost, xx, 0, 1, 600, xx, 0-rndragex2+random(2*rndragex2)); xx += 1; } surface_reset_target(); draw_surface(sfrost, 0, 0); Masz. Ale kosztem wydajności, która zresztą i tak jest już mizerna :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
snaks Opublikowano 27 Sierpnia 2009 Udostępnij Opublikowano 27 Sierpnia 2009 The Best! 7/5 :thumbsup: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 27 Sierpnia 2009 Autor Udostępnij Opublikowano 27 Sierpnia 2009 Poprawka do frosta: http://eportal.boo.pl/upload/file.php?id=frostv2.gmk Teraz frost nie jest losowany (czyli nie "rusza się", jest statyczny) :D Jedząc obiad wpadłem na to, że przecież nie muszę tworzyć mapy przesunięcia (tak se to nazwałem :x) dla całego ekranu - wystarczy stworzyć mały fragment, i powielać o dla innych części ekranu. Ponadto, jeśli zmodyfikujemy mapę przesunięcia, żeby nie byłą losowa, a podliczana według jakiegoś naszego algorytmu, możemy uzyskać ciekawe efekty typu: http://eportal.boo.pl/upload/file.php?id=6.png Cóż, teraz tylko trzeba wymyślić jakiś cudowny sposób optymalizacji tego... :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Nobody Opublikowano 27 Sierpnia 2009 Udostępnij Opublikowano 27 Sierpnia 2009 I o wiele lepiej niż to telepanie :] Z tym, że mi FPSy nie dochodzą ado 60 nawet :P Wina powłączanych programów? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 27 Sierpnia 2009 Autor Udostępnij Opublikowano 27 Sierpnia 2009 Nie, to jest mulaste, wiem o tym :P Ja w wersji z "poprawką Nobodiego" (co się czepiłeś, że prawe i lewe krawędzie są brzydkie) mam 120, bez niej - 200. Ale obawiam się, że nie wymyślę tu żadnej cudownej metody optymalizacji :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
szpaq99 Opublikowano 13 Lipca 2010 Udostępnij Opublikowano 13 Lipca 2010 Można prosić o reupload ? 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ę