Jak mogę stworzyć moduł cieniujący „Life is Strange”?

13

Chcę sprawić, by cieniowanie szkicu przypominało życie.

moduł cieniujący składa się z dwóch części:

1. ożywiona linia przerywana

2. głośny zarys

Lubię wiedzieć, jak zrobić głośny kontur?

zobacz zarys obiektów

record_2019_01_21_09_43_07_10

record_2019_01_21_09_51_00_896

record_2019_01_21_09_45_53_942

record_2019_01_21_11_37_27_699

Najpierw próbowałem utworzyć kontur, kopiując przychodzące dane wierzchołków i skalowane zgodnie z normalnym kierunkiem, a następnie Cull Back. Ale myślę, że to coś w rodzaju efektu obrazu, ponieważ kontur czasami porusza się wewnątrz obiektu. w każdym razie docenię, jeśli ktoś pomoże mi wdrożyć ten moduł cieniujący :)

Co próbowałem

Użyłem wykrywania krawędzi i animowałem go za pomocą modułu cieniującego wierzchołki, ale nie jest to dobre, jak powyżej gifów.

record_2019_01_21_18_16_43_440

record_2019_01_21_18_27_28_597

Seyed Morteza Kamali
źródło

Odpowiedzi:

1

Zrobiłem coś podobnego w Unreal Engine 4, więc wyjaśnię tylko koncepcje. Można to zrobić na 2 sposoby, a są to różne gradienty kompromisów między wydajnością a łatwością wdrożenia.

  1. Najpierw dodaj nową siatkę na górze głównej siatki, nieco większą (tak jak fizyczna siatka zderzacza). Następnie utwórz dla niego przezroczysty moduł cieniujący i włącz moduł cieniujący / pokaż siatkę, ponieważ fragment widoku gracza znajduje się w odległości x jednostek odległości od bytu. Jest to duża wydajność ze względu na moduł cieniujący przezroczystość, ale ponieważ w pewnym momencie wyróżniono tylko niewielki zestaw obiektów, można go łatwo wdrożyć i wykonać.

  2. Utwórz teksturę podstawową za pomocą linii mieszających i przesuń współrzędne tekstury zgodnie z wcześniej ustalonym zestawem matryc. Stwarza to iluzję „animowanych tekstur”; w branży nazywa się to również materiałem dynamicznym (jest w tym coś więcej, ale możesz przeczytać, jeśli chcesz). Jeśli chodzi o zarys, w Internecie można znaleźć wiele samouczków. Zastosowanie tej techniki zajmuje znacznie więcej czasu, ponieważ trzeba majstrować przy matrycach przemieszczenia i czasie aktualizacji materiału, aby uzyskać wynik podobny do powyższych zrzutów ekranu, nie wspominając już o konieczności wyrównywania linii krzyżyka przy zmianach kąta w siatce podstawy.

Jeśli wydajność nie jest problemem, przejdź do 1. Jeśli liczy się każdy FPS, użyj 2, ale spodziewaj się wielu problemów, których rozwiązanie wymaga czasu.

ciekawy student
źródło