Jak wdrożyć efekt skrótu trawy?

22

Patrzyłem na zrzuty ekranu z gier takich jak Rocket League i FIFA:

Rocket League

Rocket League

FIFA

i zacząłem się zastanawiać, czy można uzyskać efekt skrótu trawy.

Czy to jest shader? Czy to rzeczywista geometria? A może po prostu teksturowane quady? Byłbym bardzo wdzięczny, gdyby ktokolwiek mógł skierować mnie w tym kierunku.

Daniel Holst
źródło
5
+1, bardzo interesujące pytanie. Wyobrażam sobie, że jest to prawdopodobnie moduł cieniujący (geometria prawdopodobnie spowodowałaby opóźnienie, teksturowane quady prawdopodobnie wyglądałyby znacznie bardziej płasko), ale nie jestem całkowicie pewien.
Superdoggy
2
W programach do renderowania oprogramowania zwykle odbywa się to za pomocą mapowania przemieszczenia i wielu wierzchołków. Po bliższym przyjrzeniu się wydaje się, że używają tego również tutaj, z bardzo sprytnym LOD. Chyba shadery przesunięcia są w użyciu.
akaltar
Myślę, że używają mapowania paralaksy. Jestem tego pewien na zrzutach ekranu Rocket League.
Tara,
@akaltar tak, myślę, że masz rację. I chociaż zrobili LOD, jest w 100% bezproblemowy
Daniel Holst
Spróbuję odtworzyć to za pomocą shaderów i teselacji.
Daniel Holst,

Odpowiedzi:

7

Możesz zajrzeć do techniki cieniowania futra. Tego właśnie użyłbym do tego typu traw, ponieważ im krótsza trawa, tym lepsza wydajność (mniej warstw).
Zasadniczo działa, nakładając kilkakrotnie tę samą powierzchnię w małych odstępach: kilka warstw

wprowadź opis zdjęcia tutaj

Możesz także zmienić przesunięcie w poziomie, aby trawa wyglądała na zgiętą.

Martin Ciz
źródło
to dość interesujące, więc myślę, że mógłbym zasugerować, aby
zagłębić się
2

Najprawdopodobniej jest to moduł cieniujący, który używa mapowania okluzji paralaksy , który używa normalnej mapy do „fałszywej” głębi i cieni w teksturze. Przykłady znajdziesz TUTAJ .

Edycja: Jak wskazał @Leggy, być może bardziej prawdopodobne jest, że jest to mapowanie przemieszczenia, ponieważ stopa wydaje się poruszać między trawą. W każdym razie jest to jakiś shader mapowania wysokości :)

Bluk
źródło
Nie sądzę, bo w takim przypadku stopa nie pojawiłaby się za liśćmi. Mapowanie przemieszczeń wydaje mi się najbardziej prawdopodobne, jak to zrobili
Leggy7,
Myślę, że byłoby to prawdą, gdyby nie była to krótka trawa, w której można „obniżyć podłogę”, a jeśli dobrze pamiętam, mapowanie paralaksy jest szybsze do obliczenia. Ale może masz rację, zredaguję moją odpowiedź.
Bluk
2
Możesz użyć mapowania okluzji paralaksy i zapisać w buforze głębokości, aby zamknąć stopę, i najprawdopodobniej jest to stosowana technika. Moduł cieniujący Uber ma wygląd dema do pobrania. assetstore.unity3d.com/en/#!/content/39959
Seph