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?
źródło
Odpowiedzi:
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.
źródło
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.
źródło
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:
źródło
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
źródło
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.
źródło
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.
źródło