Divinity: Original Sin 2 ma piękny, przejrzysty system. Kiedy idę za ściany, pojawi się maska przeciwbryzgowa, a kiedy poruszam się po grze, zmienia się. To jest jak shader rozpuszczania i ma efekt metaliczny.
Jak mogę powtórzyć ten efekt, tworząc dynamiczną maskę rozbryzgową, gdy gracze przechodzą za ścianami?
Możesz zobaczyć pożądany efekt w ruchu dzięki temu filmowi na YouTube .
unity
shaders
graphic-effects
Seyed Morteza Kamali
źródło
źródło
Odpowiedzi:
Maskowanie
Aby uzyskać ten efekt, możesz maskować obiekty za pomocą bufora szablonów.
Szablon maski:
Szablon ścienny:
Implementujmy.
użyj tego jako maski:
użyj tego jako ściany:
Analiza efektów
Jeśli chcesz mieć teksturę proceduralną , potrzebujesz trochę hałasu.
możesz zobaczyć ten moduł cieniujący w ShaderToy .
Aby uzyskać ten efekt, zamiast używać współrzędnych UV, należy użyć współrzędnych biegunowych, a następnie ustawić teksturę szumu.
innym rozwiązaniem jest hałas worley:
możesz zobaczyć ten moduł cieniujący w ShaderToy
Metaball
następnie dodaję efekt metaball z tego artykułu :
Wejście na pokład rachunku
jest więcej...
Jeśli chcesz obrócić maskę, aby spojrzeć na kamerę, możesz użyć tablicy Bill :
to jest maska z wejściem na pokład Billa:
Ostateczny wynik:
źródło jest dostępne: https://github.com/smkplus/Divinity-Origin-Sin-2
Przydatne linki
Znalazłem dobry samouczek, który wdrożył ten efekt przez rozpad świata:
Rozpuszczanie świata Część 1
Rozpuszczanie świata Część 2
Kolejny samouczek z szablonami:
Samouczek szablonów
źródło