W sumie to nie do końca odpowiedział na to pytanie. Najbardziej to masowy overdraw. Trawa jest to najczęściej zbiór kwadratowych/prostokątnych płaszczyzn z przezroczystością między źdźbłami. Kiedy ta przezroczystość nachodzi na siebie to znacznie wpływa na wydajność. Zamiast wyrenderować "jedną trawę" trzeba jeszcze wszystkie kolejne "trawy" za nią z uwzględnieniem kanału przezroczystości z którym raczej GPU się nie zbyt lubi.
Przy obiektach nieprzezroczystych jeden zasłania drugi i ten drugi nie jest renderowany, a
@GracekPL: Słuszna uwaga. Jeśli rzeczywiście trawa jest realizowana z użyciem tekstury z przezroczystością, to nawet zakładając jakieś optymalizacje potoku w postaci odrzucania fragmentu na podstawie kanału alfa już na początku pixel/fragment shadera, i tak konieczny jest odczyt z tekstury w każdym miejscu gdzie ma wystąpić "dziura". Do tego dochodzi jeszcze konieczność sprytnego sortowania kolejnych kępek trawy po odległości od kamery, żeby alpha blending dobrze zadziałał i nie okazało się, że dalsza
Cudze chwalicie, swego nie znacie. Jednym z "pionierów" w branży w temacie traw i obiektów liściastych był Techland ze swoją grą Chrome. Gra wydana na rok (2003) przed pierwszym FarCry
@przemomemoo: To stąd jest Chrome Enginie, na nim (tj któreś wersji) zrobili Dead Island. Wodę miało ładną ale trawę chyba płaską i krzaki. Nie pamiętam.
W call of duty 4 jest komenda, ktora ogranicza zasięg rysowania roślinności. W bf4 sam silnik to ogranicza przez co chowanie się w trawie nie ma sensu.
Komentarze (95)
najlepsze
Chyba że developer ma mózg i ustawienia na low nie wyłączą trawy, a gracz nie zyska tym samym przewagi.
Przy obiektach nieprzezroczystych jeden zasłania drugi i ten drugi nie jest renderowany, a
Komentarz usunięty przez moderatora
To stąd jest Chrome Enginie, na nim (tj któreś wersji) zrobili Dead Island. Wodę miało ładną ale trawę chyba płaską i krzaki. Nie pamiętam.