OpenGL ES 2.0: Repozytorium modułów cieniujących jakości [zamknięte]

10

Czy mogę prosić o zasugerowanie repozytorium wysokiej jakości shaderów wierzchołków i fragmentów OpenGL (OpenGL ES 2.0) ?

Szukam pikselowych shaderów ligowania (takich jak phong ) i podobnych. Byłoby miło zobaczyć ich więcej, aby móc wybierać między jakością a wydajnością shadera.

Bunkai.Satori
źródło

Odpowiedzi:

16

Shadery o dowolnej złożoności nie są na ogół rzeczami, które można pobrać i upuścić w swoim projekcie, jak wymienne koła zębate. Zazwyczaj bardziej interesujące efekty wymagają sporego sprzężenia z podsystemem renderowania po stronie procesora, aby osiągnąć swoje wyniki. To samo ogólnie dotyczy wydajności - kompromisy w wydajności w odniesieniu do dokładności i jakości w porównaniu z liczbą instrukcji lub potokiem są zwykle zakorzenione w specyficznych wymaganiach aplikacji.

W rezultacie tak naprawdę nie ma wiele na temat repozytoriów, o których myślisz. Książki z Klejnotami GPU oferują dobrą kolekcję opisów technik w stylu książki kucharskiej z przykładami gier i kodu zacieniowanego, na które warto jednak spojrzeć. Podobnie jak książki Shader X.


źródło
+1 za bardzo cenny komentarz. Cześć Josh. Dzięki za twoją odpowiedź. Cóż, jeśli dana osoba jest na początku opracowywania modułu cieniującego, to naprawdę pomoże zobaczyć, jak zaimplementowane są niektóre standardowe moduły cieniujące: Na przykład, jak wykonuje się Phong (który jest bardzo standardowym algorytmem), moduły cieniujące piksele itp. Rozumiem twoje punkt, a podane przez ciebie źródła brzmią jak dobry materiał. Rzucę na nie okiem. Do tej pory najlepszymi zasobami, jakie znalazłem, są: książka OpenGL Shading Language i witryna Lighthouse 3D.
Bunkai.Satori
2
Dlatego nadal chętnie bym repozytorium shaderów dobrej jakości , ilustrujących rozwój interesujących efektów. Skrypty można wykorzystać jako piwnicę do ich łączenia i tworzenia nowych atrakcyjnych efektów.
Bunkai.Satori
@Bunkai Satori Myślę, że Josh miał na myśli to, że tego rodzaju repozytoria w większości nie istnieją.
Kaczka komunistyczna
@The Communist Duck: Cześć, dzięki za komentarz. Rozumiem, że. Jestem wdzięczny za każdą odpowiedź tutaj, a także za Josha. Przyszło mi jednak do głowy, że Internet jest tak duży, że może ktoś inny niż Josh nie pamięta, aby zobaczyć miejsca inspirowane przez konkretnych shaderów. Mogę sobie wyobrazić, że firma / osoba często używająca shaderów będzie je zbierać, a niektóre z nich mogą również je publikować. W każdym razie odpowiedź Josha jest moim kandydatem na Przyjętą Odpowiedź , więc jeśli nikt nie wróci wkrótce, zamknę ten wątek, zaznaczając jego odpowiedź.
Bunkai.Satori
13

Niewiele, ale przynajmniej kilka podstawowych shaderów na początek można znaleźć między moimi plikami otwartych silników magii:

pliki .vsh zawierają moduły cieniujące wierzchołki, a pliki .fsh - moduły cieniujące fragmenty, ale myślę, że to samo wyjaśnienie ...

Na obecnym sprzęcie mobilnym powinieneś zrobić jak najwięcej w cieniowaniu wierzchołków, a sztuczką dla świetnie wyglądających i szybkich gier jest napisanie wielu bardzo wyspecjalizowanych shaderów robiąc zawsze dokładnie to, co jest potrzebne, aby coś wyglądało tak, jak powinno. Przynajmniej takie są moje doświadczenia z moim iPhonem 3GS, który ma tę samą kartę graficzną co iPhone 4, ale ma mniej pikseli do dostarczenia danych. Prawdopodobnie jest to już znacznie lepsze w przypadku Tegra 2, a jeszcze lepiej w przypadku układu A5 jabłek, ale na razie oznacza to, że nie powinieneś próbować przenosić shaderów dla komputerów stacjonarnych na telefony komórkowe i oczekiwać doskonałej wydajności: P Oznacza to również, że pełny ekran efekty, szczególnie na urządzeniach z wyświetlaczem o wysokiej rozdzielczości, są zwykle powolne.

Mam nadzieję, że to trochę pomoże :).

Slin
źródło
Cześć, witamy w GDSE. Niezła odpowiedź!
Notabene
+1 za dobrą odpowiedź. Cześć Slin, witaj w GDSE. Dziękuję za tę dobrą odpowiedź i za przykładowe rzeczy. Cieszę się, że podzieliłeś się swoim doświadczeniem z programami shaders na platformę mobilną. W tej chwili zajmuję się programowaniem na PC, planując późniejsze przeniesienie. Zatem twoje doświadczenie zostanie docenione.
Bunkai.Satori
9

może zdobyć część tajemnej wiedzy z tego miejsca http://glslsandbox.com/

UlanB
źródło
Cześć UlanB. Ta kolekcja wygląda świetnie. Czy możesz mi powiedzieć, jak mogę pobrać te shadery. Podczas próby otwarcia dowolnej kolekcji modułów cieniujących w chrome pojawia się błąd „Nieobsługiwany WebGL”. Dziękuję Ci.
Vinodtiru,
Przykro mi, ale tak naprawdę nie mogę udzielić pomocy technicznej w zakresie kompatybilności Webgl. Prawdopodobnie twój sprzęt, który nie obsługuje webgl. Również kompilacje Chrome na Linuxa jeszcze go nie obsługują.
UlanB,
4

Kiedy szukałem sposobu implementacji mgły w OpenGL ES 2.0, znalazłem link do funkcjonalności implementacji projektu kompatybilnej wstecz z OpenGL ES 2.0 , która nie jest w OpenGL ES 2.0, na przykład mgła, na wierzchołek, na cieniowanie fragmentu (piksela). Możesz zajrzeć bezpośrednio do źródła shaderów .

Wdrażam także oświetlenie fragmentów, modyfikując ten przykład utworzony przez ClockworkCoders (nie OpenGL ES 2.0).

Możesz także zapoznać się z tymi świetnymi samouczkami lighthouse3D

martin pilch
źródło
+1 za dobry komentarz. Cześć Martin, dziękuję za twoje linki. tak, znalazłem Lighthouse3D i wygląda to na wysokiej jakości zasób.
Bunkai.Satori
1

Pakiet AMD RenderMonkey zawiera bardzo zaawansowane shadery dla OpenGL ES 2.0 wśród przykładowych plików.

Spójrz szczególnie na próbkę modułu cieniującego Rendermana w katalogu próbek GLES, który zapewnia mniej lub bardziej otwarty moduł cieniujący OpenGL ES 2.0, który może służyć jako dobry punkt wyjścia. I może również dać ci dobry pomysł, dlaczego nie ma wielu przykładów dobrych shaderów. Podstawowy problem: że shadery są ściśle powiązane z konfiguracją serwera OpenGL ES i modelami, które są na nich renderowane. Nadal. Moduł cieniujący Renderman jest doskonałym punktem wyjścia, jeśli możesz go podważyć za pomocą narzędzia REnderMonkey.

rerdavies
źródło
1

Spójrz na GPUImage ( https://github.com/BradLarson/GPUImage ), jego prawdopodobnie najbardziej kompletną kolekcję shaderów, jaką do tej pory znalazłem w Internecie. Ponieważ wszystkie zostały zaprojektowane do współpracy z GPUImage, wszystkie mają tę samą strukturę, więc jeśli dostosujesz tę samą strukturę w swojej aplikacji / grze, powinieneś być w stanie szybko zaimportować wiele różnych efektów.

Twoje zdrowie!

ekscrypto
źródło