Efektywna animacja szkieletowa

11

Rozważam przyjęcie szkieletowego formatu animacji ( zgodnie z monitami tutaj ) do gry RTS. Indywidualna reprezentacja każdego modelu na ekranie będzie niewielka, ale będzie ich wiele!

W animacji szkieletowej, np. Plikach MD5, każdy pojedynczy wierzchołek może być dołączony do dowolnej liczby połączeń.

Jak możesz skutecznie to wspierać podczas interpolacji w GLSL? A może silniki wykonują animację na procesorze?

Czy też silniki ustalają dowolne limity maksymalnych połączeń na wierzchołek i wywołują mnożniki nop dla tych połączeń, które nie używają maksymalnej liczby?

Czy są gry wykorzystujące animację szkieletową w otoczeniu przypominającym RTS, co dowodzi, że na zintegrowanych kartach graficznych nie mam się czym martwić, idąc drogą kości?

Wola
źródło
+1, to dobre pytanie. Zawsze zastanawiałem się, czy animacja powinna być wykonywana w języku cieniującym, czy na procesorze ...
James
Gry RTS wykorzystujące silnik SAGE EA (C&C 3 i późniejsze, seria BFME) wykorzystują animację szkieletu, ale tam wierzchołki są związane tylko z jedną kością (przynajmniej w BFME)
Bart van Heukelom

Odpowiedzi:

6

Tak, ograniczenie liczby wpływów na kości jest powszechne. Możesz albo nieużywać wpływów o wadze 0, albo mieć mechanizm pętli / wczesnego wychodzenia, aby pominąć.

Jeśli chodzi o to, czy działa dla RTS, nie mam dla ciebie referencji, ale wyobrażam sobie, że będziesz potrzebować LOD, jeśli pracujesz z dużą liczbą znaków na ekranie, a także, jeśli te postacie są małe.

LODowanie postaci szkieletowych jest bardzo podobne do LODowania czegokolwiek innego, z tym wyjątkiem, że prawdopodobnie będziesz chciał LODować wpływy kości i szkieletu oraz siatki.

Na przykład niski poziom szczegółowości może wykorzystywać tylko jedną kość o największym wpływie na wierzchołek (znany również jako „twarde skórowanie”).

Prawdopodobnie ograniczyłbyś również liczbę kości w szkielecie dla modelu o niskim LOD.

Wreszcie - zastanów się, czy kiedykolwiek będziesz musiał renderować postacie z bliska. Prawdopodobnie chcesz tylko modelować, skórować i animować postacie dla najbliższej odległości widzenia ... z pewnością nie chcesz przechowywać wszystkich danych środowiska wykonawczego w rozdzielczości znacznie wyższej niż kiedykolwiek renderujesz. Może się okazać, że po prostu nie potrzebujesz tylko bardzo podstawowego szkieletu i kilku wpływów na wierzchołek w twojej sytuacji.

JasonD
źródło
Miałem nadzieję, że ktoś powie „naprawdę nie chcesz kości do wieżyczek w rts, jeśli twoje kawałki są małe; zamiast tego rozważ MD3 z połączonymi modelami” lub coś w tym stylu
Will
Cóż, nie użyłbym skórowania dla tego rodzaju siatek w takiej sytuacji, ale „kości” to tylko fantazyjna nazwa dla transformacji hierarchicznych. Nic nie powstrzymuje cię przed przymocowaniem do nich siatek zamiast ważenia wierzchołków. (innymi słowy, w przypadku wieży możesz mieć tylko dwie kości i dwie siatki, w ogóle bez skórowania / ważenia).
JasonD
2

Nie sądzę, że animacja szkieletowa jest dobra dla gry RTS, animacja szkieletowa będzie wymagała dodatkowego procesu dla wszystkich postaci, podczas gdy animacja klatki kluczowej zużywa więcej pamięci, ale użyjesz tego samego dla wielu postaci, również gra rts wymaga małych animacji na postać

James
źródło