PsichiX Opublikowano 31 Lipca 2013 Udostępnij Opublikowano 31 Lipca 2013 Lista gotowych exampli shaderów: Heat HazeScreenshot: https://dl.dropboxusercontent.com/u/9759049...l_heat_haze.PNG OutlineScreenshot: https://dl.dropboxusercontent.com/u/9759049/psl_outline.PNG Normal MappingScreenshot: https://dl.dropboxusercontent.com/u/9759049...mal_mapping.PNG Vintage SepiaScreenshot: https://dl.dropboxusercontent.com/u/9759049...ntage_sepia.PNG NoctovisionScreenshot: https://dl.dropboxusercontent.com/u/9759049...noctovision.PNG ThermalvisionScreenshot: https://dl.dropboxusercontent.com/u/9759049...ermalvision.PNG WaterScreenshot: https://dl.dropboxusercontent.com/s/lknyql2...s/psl_water.PNG BlurScreenshot: http://dl.dropboxusercontent.com/u/9759049/psl_blur.PNG BloomScreenshot: http://dl.dropboxusercontent.com/u/9759049/psl_bloom.PNG GPU Game of LifeWindows Executable Screenshot: http://dl.dropboxusercontent.com/u/9759049...ame_of_life.PNG Dynamic Points (Snow)Screenshot: http://dl.dropboxusercontent.com/u/9759049...amic_points.PNG RandomNoiseScreenshot: http://dl.dropboxusercontent.com/u/9759049...randomnoise.PNG Top Down EffectsScreenshot: http://dl.dropboxusercontent.com/u/9759049..._td_effects.PNG Atmos (Dynamic Sky Simulation)Screenshot: http://dl.dropboxusercontent.com/u/9759049/psl_atmos.PNG Recolorize (HSV)Screenshot: http://dl.dropboxusercontent.com/u/9759049..._recolorize.PNG Radial BlurScreenshot: http://dl.dropboxusercontent.com/u/9759049..._radialblur.PNG Fish Eye DistortionScreenshot: http://dl.dropboxusercontent.com/u/9759049/psl_fisheye.PNG RepaintScreenshot: http://dl.dropboxusercontent.com/u/9759049/psl_repaint.PNG Dithering (Black & White)Screenshot: http://dl.dropboxusercontent.com/u/9759049/psl_dithering.PNG Dithering (Color)Screenshot: http://dl.dropboxusercontent.com/u/9759049...ering_color.PNG Witajcie! Jak wiecie, lub nie, specjalizuję się w programowaniu i optymalizacjach programów GPU (głównie GLSL i AGAL) jak i całych efektów. Z racji, że mamy w polsce świetnych koderów w GMie, a ja od dawien dawna próbuję zachęcić możliwie jak największą ilość osób do uzywania shaderów, to teraz, kiedy GM:S W KOŃCU je używa, mam możliwość nauczyć Was jakie nieograniczone możliwości jesteście w stanie osiagnąć w Waszych grach, dzięi którym zauroczycie także graczy napalonych na wizurę. Mój deal jest taki: ja Wam w tym temacie będę co jakiś czas podrzucał całe techniki efektów razem z możliwie najdokładniejszym ich opisem, a Wy (z racji, że macie GM:S i przede wszystkim kompa, a ja niestety nie), wedle materiału, jaki Wam dostarczę, będziecie tworzyć ich wersję w GM:S. Finalne prace będą trafiać na githuba, którym będziemy się dzielić z ogólnoświatowym community, aby także zauważyli, że i polacy nie gęsi i swoje shadery mają :) Co Wy na to? Ktoś pomoże? W końcu dzielę się wieloletnią wiedzą i to za free, więc myślę, że nie ma sensu trzymać tego tylko dla siebie. Co mogę Wam na początek zaoferować: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Compi Opublikowano 31 Lipca 2013 Udostępnij Opublikowano 31 Lipca 2013 A jak to zrobić? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 31 Lipca 2013 Administratorzy Udostępnij Opublikowano 31 Lipca 2013 Spoczko, przy okazji będzie się można tego i owego nauczyć :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 31 Lipca 2013 Autor Udostępnij Opublikowano 31 Lipca 2013 1. Trzeba posiadać GM:S 2. Trzeba poznać nowy flow renderowania, głównie funkcje z grupy shader i vertex_cośtam - z reguły obejdzie się bez vertex_cośtam, ale niektóre efekty będą wymagały użycia właśnie customowych shape'ów, więc znajomość ich tworzenia przyda się do złożonych efektów. 3. Ja dostarczę opis techniki, który będzie zawierał dokładne informacje o tym, gdzie i kiedy użyć shadera takiego, a takiego, jaki layout i jakie dane musi posiadać customowy vertex buffer, kiedy i z czym go aktywować i jak wypełnić, a Wy będziecie mój przykładowy pseudo-kod zamieniać na GMowy - jest to na tyle uniwersalny wszędzie sposób użycia, że spokojnie da się go przeportować do GM:S. 4. rezultat (plik wynikowy, plik projektu jak i kod w tagu GML) wrzucacie do posta, a ja go weryfikuje czy na oko zgadza się (dokumentację GMa z nowymi funkcjami znam, więc spokojnie mogę robić code review). 5. Jeśli moje code review przejdzie i nikt inny także się nie przyczepi do czegoś, projekt trafia na githuba (i może na specjalnie założoną do tego stronkę na subdomenie gmclanu). Na początek dam Wam prosty efekt, gdzie nie będzie trzeba używać vertex bufferów, a będą same operacje na pixelach i w ten sposób oswoję Was z tym. Będziemy robić kolejne coraz bardziej złożone efekty razem :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 31 Lipca 2013 Udostępnij Opublikowano 31 Lipca 2013 Jak efekty nie będą wykraczać poza możliwości free GMS ( limit 2 shaderów ) to mogę spróbować coś zrobić. Chcę się trochę nauczyć o tych shaderach. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 31 Lipca 2013 Autor Udostępnij Opublikowano 31 Lipca 2013 na szczescie YoYoGames jest na tyle głupie w tym temacie, że nie znają czegoś takiego, jak Ubershadery - można tak grupować shadery, by do tego dało się użyć jednego pliku, a w rzeczywistości używać więcej efektów. oczywiście jest to także nałożone limitem takim, iż nie wszystko da się połączyć, zwłąszcza jeśli chodzi o różnicę danych dostarczanych różnym shaderom. ale spoko, nie takie rzeczy się obchodziło na około i możnaby spróbować rozwiązać i taki problem. EDIT: No i nakład wydajnościowy dynamic branchingu może boleć, ale jak wyżej - spróbować to rozwiązać można. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cyreptor Opublikowano 31 Lipca 2013 Udostępnij Opublikowano 31 Lipca 2013 To wygląda na interesujące. Skąd je masz panie Psyhix? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 31 Lipca 2013 Autor Udostępnij Opublikowano 31 Lipca 2013 sam je pisalem, metoda prob i bledow. na dodatek to sa jeszcze te stare efekty, maja z ponad 2 lata, jak nie wiecej :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 2 Sierpnia 2013 Administratorzy Udostępnij Opublikowano 2 Sierpnia 2013 Narazie gadanie i gadanie, a moze czas cos zrobić ? ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 2 Sierpnia 2013 Udostępnij Opublikowano 2 Sierpnia 2013 Właśnie kupiłem GMSa to można zaczynać :D Narazie z shaderów to bawiłem się tylko kolorkami, a jestem ciekawy jak się zgina ekran w jaki kolwiek sposób.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 2 Sierpnia 2013 Autor Udostępnij Opublikowano 2 Sierpnia 2013 dobrze, to jeśli macie propozycje, jakie efekty chcielibyście uzyskać, to opiszcie mi je, ja je posortuje w kolejności od najprostrzego do najtrudniejszego i zaczynamy :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 2 Sierpnia 2013 Udostępnij Opublikowano 2 Sierpnia 2013 No to mi się przyda efekt rozchodzenia się fali uderzeniowej z wybuchu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 2 Sierpnia 2013 Administratorzy Udostępnij Opublikowano 2 Sierpnia 2013 jeśli chodzi o efekty pełnoekranowe, to musisz przypisać view do surface (view_surface_id[id] = surfaceID), a potem surface malować np. w draw gui w najgłębszym obiekcie (albo w osobnym ale też z namniejszym depth). Przypominam, że w GM:S malujemy na surface tylko w draw, a dodatkowo należy zawsze przed surface_set_target sprawdzać czy surface istnieje i jak nie to go utworzyć, bo surface są usuwane przez wygaszacz ekranu/usypianie urządzeń/inne aplikacje pełnoekranowe/zmiany rozdzielczości Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 2 Sierpnia 2013 Udostępnij Opublikowano 2 Sierpnia 2013 To wiem, robiłem efekt pełno ekranowy na Lidze24 o shaderach. Z tym że z użyciem 2 viewów. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 3 Sierpnia 2013 Udostępnij Opublikowano 3 Sierpnia 2013 ΨΧΞ już szykuję listę. Jak wrócę z urlopu to się odezwę B-) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 4 Sierpnia 2013 Udostępnij Opublikowano 4 Sierpnia 2013 Mieliśmy usiąść do napisania tutków, ale taka idea jest chyba lepsza. Ale i tak jestem do twojej dyspozycji. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 5 Sierpnia 2013 Administratorzy Udostępnij Opublikowano 5 Sierpnia 2013 Na razie to nic nie jest zrobione, bo główny pomysłodawca tylko dyskutuje i planuje a nie daje żadnych danych :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 5 Sierpnia 2013 Autor Udostępnij Opublikowano 5 Sierpnia 2013 dobrze, to jeśli macie propozycje, jakie efekty chcielibyście uzyskać, to opiszcie mi je, ja je posortuje w kolejności od najprostrzego do najtrudniejszego i zaczynamy :) Gnysku :* Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 5 Sierpnia 2013 Administratorzy Udostępnij Opublikowano 5 Sierpnia 2013 U góry podałeś kilka przykładów od których mozna zacząć, a wodą nawet się ktoś zainteresował. Blur Outline (z wyborem jego koloru) Woda Lód / Śnieg / Szkło bump mapping vintage termo gogle noktowizor Edit: i jeszcze fajnie by było przerobić te: http://gmc.yoyogames.com/index.php?showtopic=492876 :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 5 Sierpnia 2013 Udostępnij Opublikowano 5 Sierpnia 2013 Załamanie światła(takie jak od wysokiej temperatury?) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 5 Sierpnia 2013 Udostępnij Opublikowano 5 Sierpnia 2013 Można by było na 3D coś zrobić. Dać jakieś światło i shader bumpa + spec jak by się dało :D Finalna textura na ściane by się tak składała z 3 texturek. Wiem że można wysłać 1 texturkę na shader w GM ale czy więcej naraz? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 5 Sierpnia 2013 Autor Udostępnij Opublikowano 5 Sierpnia 2013 Załamanie światła(takie jak od wysokiej temperatury?) Heat-haze. Da sie prosto, chyba nawet może być to pierwszym efektem :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 6 Sierpnia 2013 Autor Udostępnij Opublikowano 6 Sierpnia 2013 Witajcie, oto pierwszy shader, jaki chce z Wami przekonwertowac do GM:S - Heat-haze. Ten shader jest na tyle prosty, ze moge sprobowac dac go Wam w formie od razu gotowej dla GMa. Vertex shader: attribute vec3 in_Position; attribute vec2 in_TextureCoord; varying vec2 coord; void main() { coord = in_TextureCoord; gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * vec4(in_Position, 1.0); } Fragment shader: varying vec2 coord; uniform vec4 uPhase; void main() { vec2 phs = vec2(cos(uPhase.z + (coord.y * uPhase.w)), sin(uPhase.z + (coord.x * uPhase.w))); vec2 crd = coord + (phs * uPhase.xy); vec4 col = texture2D(gm_BaseTexture, crd); gl_FragColor = col; } teraz aby coś narysować z tym shaderem, w evencie draw: GML uPhase = shader_get_uniform(HeatHazeShader, "uPhase"); shader_set(HeatHazeShader); shader_set_uniform_f(uPhase, 1.5 / sprite_width, 0.5 / sprite_height, current_time * 0.02, 20); draw_self(); shader_reset(); Wrzuccie to do gma i powiedzcie, czy dziala :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 6 Sierpnia 2013 Udostępnij Opublikowano 6 Sierpnia 2013 Działa. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 6 Sierpnia 2013 Autor Udostępnij Opublikowano 6 Sierpnia 2013 super ^^ to zabieram sie za kolejne :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 6 Sierpnia 2013 Udostępnij Opublikowano 6 Sierpnia 2013 Faaajno. Działa :) Nie mam pojęcie jak, ale działa. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 6 Sierpnia 2013 Autor Udostępnij Opublikowano 6 Sierpnia 2013 hmm, uznalem, ze jest to bardzo latwy przyklad, ale moglem sie mylic. jesli chcecie, to z dzika przyjemnoscia wyjasnie Wam jak dzialaja shadery na powyzszym przykladzie :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 6 Sierpnia 2013 Udostępnij Opublikowano 6 Sierpnia 2013 Pisz tutki bo widzę, że o tym można książkę napisać :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 6 Sierpnia 2013 Udostępnij Opublikowano 6 Sierpnia 2013 Działać działa na samym spricie tylko teraz jak zrobić by taki efekt umieścić w dowolnym miejscu w grze tzn. zrobić jakiś obiekt pochodni i ogniska i by ten haze nad nimi sobie był. Domyślam się że trzeba by było kawałek ekranu wyciąć do surface i ten surface do shadera dopiero hmm zastanawiam się, może na coś wpadnę. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 6 Sierpnia 2013 Autor Udostępnij Opublikowano 6 Sierpnia 2013 efekty post-process najlepiej robić w jednym shaderze zmiksowane, z urzyciem masek alpha. po outlinie zrobie taki shader z maską na miejscach gorących + miejscowy bloom aby uwydatnic ogien - bedzie ######ste. przy okazji nauczymy sie uzywac wiecej niz jednej tekstury. zrobilbym to przed outline, ale z racji, ze bloom uzywa tego samego shadera co outline (convolution kernels) to zachowamy kolejnosc stopnia trudnosci efektow. stay tuned :) 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ę