LOD we współczesnych grach [zamknięte]

14

Obecnie pracuję nad pracą magisterską na temat LOD i uproszczenia siatki, a także czytałem wiele artykułów naukowych i artykułów na ten temat. Nie mogę jednak znaleźć wystarczających informacji o tym, jak LOD jest używany we współczesnych grach. Wiem, że wiele gier używa pewnego rodzaju dynamicznego LOD dla terenu, ale co z innymi miejscami?

Na przykład poziom szczegółowości grafiki 3D wskazuje, że dyskretne LOD (gdzie artyści przygotowują wcześniej kilka modeli) jest szeroko stosowane ze względu na narzut związany z ciągłymi LOD. Ta książka została jednak opublikowana w 2002 roku i zastanawiam się, czy teraz jest inaczej. Przeprowadzono pewne badania w zakresie wykonywania dynamicznego LOD przy użyciu modułu cieniującego geometrię ( na przykład ten artykuł z jego implementacją w ShaderX6), czy można by tego użyć w nowoczesnej grze?

Podsumowując, moje pytanie dotyczy stanu LOD we współczesnych grach wideo, jakie algorytmy są używane i dlaczego? W szczególności, czy stosowane jest ciągłe uproszczenie zależne od widoku, czy też koszty ogólne środowiska wykonawczego sprawiają, że stosowanie dyskretnych modeli z odpowiednim mieszaniem i oszustami jest bardziej atrakcyjnym rozwiązaniem? Jeśli stosowane są modele dyskretne, czy używany jest algorytm (np. Grupowanie wierzchołków ) do generowania ich w trybie offline, czy artyści ręcznie tworzą modele, czy może stosuje się kombinację obu metod?

Firas Assaad
źródło
Sugeruję dodanie tagu „renderowania”, ponieważ interesujesz się wyłącznie graficznym LOD, podczas gdy LOD można również zastosować do fizyki, sztucznej inteligencji i każdego innego obszaru, w którym ważność można zmniejszyć w zależności od odległości do czegoś lub wydajności.
Kaj
@Kaj: Dobra uwaga. Mówię w szczególności o uproszczeniu siatki wielokątnej.
Firas Assaad
Och, wygląda na to, że edytowaliśmy w tym samym czasie (zapomniałem, że mogę dodać tagi, nie krępuj się usunąć programowania grafiki: o \). Spróbuję znaleźć odpowiedź później - jestem dziś w kryzysie.
Kaj

Odpowiedzi:

9

Na razie wydaje się, że dyskretna LOD jest nadal preferowana, ale okaże się, czy zmieni się to wraz z następną generacją sprzętu konsoli.

Za to, co jest warte, Tom Forsyth napisał wiele o ciągłym LOD, który nazywa „postępowym tworzeniem siatki”. Game Programming Gems 2 rzekomo zawiera jeden z tych artykułów, ale wydaje się, że jest tutaj odzwierciedlony .

Wydaje mi się, że jedna z gier Toma została dostarczona przy użyciu progresywnego zazębienia na sprzęcie ostatniej generacji. Nie sądzę, że jest to narzut obliczeniowy, o który ludzie martwią się ciągłymi LOD. Myślę, że bardziej dyskretne LOD jest łatwiejsze. Ciągłe LOD powoduje cięższe podnoszenie w rurociągu narzędzi i nie ma wystarczająco wyraźnych zalet.

Jeśli chodzi o generowanie dyskretnych LOD, używamy kombinacji automatycznych narzędzi i tworzenia artystów. Pakiet DirectX SDK zawiera kilka elementów do automatycznej redukcji geometrii i uważam, że używamy tego jako pierwszego przejścia, jeśli jakość nie jest wystarczająco dobra, artyści generują dyskretne LODy ręcznie lub przy użyciu dodatkowych narzędzi w Maya.

Dan Olson
źródło
1
Wydaje mi się, że Mesjasz intensywnie stosował progresywne siatki, wydaje się, że minęły wieki temu świat był tym zdumiony. Ale zgadzam się, że statyczny lod nadal wydaje się być powszechny tam, gdzie patrzę. Trudno jest algorytmicznie zdecydować, który szczegół ma kluczowe znaczenie dla zachowania, chociaż napisano na ten temat wiele artykułów SigGraph, co jestem pewien, że OP wie. Na marginesie, uroczą metodą, którą zawsze pamiętałem, był rozdział „prawdziwy oszust” w jednym z klejnotów do programowania gier, w które wierzę ... gdzie używają oszustów z mapowaniem okluzji parralax. Wiem, że widziałem więcej artykułów napisanych według tej samej metodologii (być może Fabio Policarpo?)
Kaj
1
Kolejnym uderzeniem w ciągłe LOD jest stała ilość pamięci dostępnej w środowisku konsoli. Dyskretne obiekty pozwalają wyrzucać modele hi-res i wszystkie zależne od nich tekstury / shadery oraz zamieniać w znacznie tańszym modelu z prostym shaderem i wstępnie połączoną mniejszą teksturą. W tytułach otwartego świata walka o to, co wypełniają dane, ograniczona dostępna pamięć jest często większym wyzwaniem niż cykle CPU / GPU.
wkerslake
6
  • Supreme Commander (1 i 2) - ten RTS szczyci się tym, że możesz płynnie pomniejszać do końca, aby zobaczyć mapę pola bitwy, a następnie powiększyć obszar i zarządzać nim. Wykorzystuje LOD bardzo dobrze podczas powiększania i pomniejszania, aby uniknąć przeciążenia karty graficznej, a przy pewnym poziomie pomniejszenia oczka są zastępowane obrazami 2D o rodzaju jednostki, dzięki czemu mapa pola bitwy może wyraźnie pokaż, gdzie są rzeczy (ponieważ oczywiście bardzo mało szczegółowa siatka 3D na wysokości 20 000 stóp byłaby nie do odróżnienia). Efekt zastępowania 2D można zobaczyć dość wyraźnie w pierwszych kilku sekundach tego filmu .
  • RollerCoaster Tycoon 3 - Podobnie jak Supreme Commander, ta gra pozwala na powiększanie i pomniejszanie do woli, przeglądanie całego parku rozrywki lub zarządzanie pojedynczą kolejką. Nie wykorzystuje zastępowania obrazu 2D, ale dzięki LOD wszystko pozostaje gładkie; duże oczka nie tylko obniżają jakość, ale drobne szczegóły, takie jak ludzie chodzący, znikają po dostatecznym oddaleniu.
  • Legend of Zelda: Wind Waker - żeglując po otwartym morzu, możesz rozejrzeć się i zobaczyć najbliższe wyspy; są to tylko sylwetki wysp, a rzeczywiste modele 3D nie ładują się, dopóki nie zbliżysz się do wyspy. Inne funkcje wyspy również się ładują, takie jak wrogowie i tajfuny na pobliskich wodach; niestety gracz widzi, jak pojawiają się, gdy się zbliża, ale ogólnie rzecz biorąc, jest to dobra technika, która zapobiega przeciążeniu sprzętu Nintendo GameCube, a jednocześnie daje graczowi dość dokładne poczucie żeglowania po morzach i jest w stanie odróżnić przełomowe wyspy w odległość.
  • Elder Scrolls IV: Oblivion - Nie grałem w tę grę od dłuższego czasu, ale wiem, że używa ona modeli sylwetkowych lub modeli o bardzo niskiej szczegółowości w odległych obiektach, takich jak wysoka wieża jednego z miast i odległych gór .

LOD służy nie tylko do ukształtowania terenu, ale także do sylwetek odległych budowli i widoków orłów w grach strategicznych / symulacyjnych. Nie znam szczegółów algorytmów i myślę, że to główna część twojego pytania, ale chciałem podać kilka przykładów stanu LOD we współczesnych grach wideo.

Ricket
źródło
4

Jednym z nowoczesnych podejść do ciągłego LOD jest teselacja sprzętu. Teselacja sprzętowa została zaimplementowana w DirectX 11 i zasadniczo zapewnia programowalny podział powierzchni. Ponieważ jest to zaimplementowane w procesorze graficznym, pozwala na uzyskanie znacznie większej ilości szczegółów niż w przypadku teselacji generowanej przez procesor. Dzieląc powierzchnie, na przykład na podstawie odległości widoku, można zapewnić formę ciągłego LOD.

Teselacja sprzętowa to bardzo nowa funkcja procesorów graficznych i niewiele gier z niej korzysta. Podejrzewam, że gry, które używają go głównie jako drop-in do mapowania wypukłości - zamiast mapy wypukłości w module cieniującym piksele, możesz modyfikować faktyczną geometrię. Prawdopodobnie jest dużo miejsca na dalsze badania nad uproszczeniem i ulepszeniem siatki za pomocą teselacji sprzętowej.

Więcej zasobów:

thekidder
źródło
Do tej pory uważam, że jest to bardziej technologia pokazowa niż praktyczna, ponieważ naprawdę wykluczasz ogromną liczbę docelowych odbiorców. Ale tak, procedury mogą być drogą naprzód w jakiejś formie lub formie, ale nie jestem pewien, czy to bieżąca implementacja MS. Czas pokaże.
Kaj
4

Oto alternatywna sugestia, aby była interesująca. Wypukły rozkład może dość szybko tworzyć przybliżone geometrie i zwykle dotyczy siatek kolizyjnych. Siatki te działają dobrze jako LOD i jest prawdopodobne, że jest to zdziesiątkowanie w czasie rzeczywistym w celu przyspieszenia rurociągu.

http://codesuppository.blogspot.com/2009/11/convex-decomposition-library-now.html

odkrycie podkreślone
źródło
3

LOD polega na próbie utrzymania stałej wielkości przetwarzania w czasie. Hierarchiczny poziom szczegółowości jest jedynym sposobem na zrobienie tego w przypadku scen o znacznych szczegółach. Jeśli jesteś wystarczająco blisko obiektu, rozkłada się on na wiele obiektów. Ten rekurencyjny LOD zapewnia nie tylko prosty mechanizm obsługi punktów przejścia w celu przełączania się na nowe poziomy szczegółowości, ale także pozwala, aby liczba wywołań renderowania pozostała na tym samym poziomie, bez względu na to, jak daleko / blisko jesteś do obiektów świata.

Bardzo dobrze jest mieć świetne LOD dla twoich siatek i tekstur, ale w co najmniej jednej grze, którą dostałem na PS2, zaoszczędziłem czas, po prostu zbierając wszystkie liście w sektorach w pojedyncze losowania. To większe wezwanie do remisu zajęło prawie 90% mniej czasu niż renderowanie wszystkich wariantów niskich tonów, nawet przy starannie uporządkowanych przejściach materiałów i renderowaniu partii każdego rodzaju siatki. Dlatego rozważ ostrożnie LOD. Nie chodzi tylko o pojedyncze przedmioty. Chodzi o całą fazę renderowania.

Richard Fabian
źródło
1

Kolejnym tematem, który należy rozważyć w artykule (choć całą tezę można łatwo napisać tylko na ten temat), jest generowanie terenu proceduralnego.

Wiele współczesnych projektów zaczyna wykorzystywać procesowe generowanie terenu w czasie rzeczywistym do tworzenia ogromnych obszarów terenu (Outerra, Infinity (INovae), aby wymienić jedne z najbardziej znanych). Dyskretna LOD po prostu nie wchodzi w grę z powodu proceduralnego charakteru oczek.

Tereny te często wykorzystują struktury podziału heirarchicznego, takie jak czwórki, do określania LOD i generowania siatki o odpowiedniej rozdzielczości na podstawie głębokości węzła drzewa.

Bez użycia ciągłego LOD te niesamowite projekty byłyby po prostu niemożliwe.

rybak
źródło