autor: Tomasz Pyzioł
FEM w Pro Race Driver - prawda czy fikcja?
Niedawne informacje, podane przez firmę Codemasters o zastosowaniu systemu FEM w swych najnowszych wyścigach samochodowych Pro Race Driver, wywołały żywe zainteresowanie wśród graczy. Większość z nas po Pro Race Driver spodziewa się zbliżonego do realizmu symulatora. Czy producent rzeczywiście jest w stanie spełnić takie obietnice? Jeden z naszych czytelników, pan Piotr Traczykowski z Instytutu Podstawowych Problemów Techniki PAN, postanowił wylać nam na głowę kubeł zimnej wody... :)
Niedawne informacje, podane przez firmę Codemasters o zastosowaniu systemu FEM w swych najnowszych wyścigach samochodowych Pro Race Driver, wywołały żywe zainteresowanie wśród graczy. Większość z nas po Pro Race Driver spodziewa się zbliżonego do realizmu symulatora. Czy producent rzeczywiście jest w stanie spełnić takie obietnice? Jeden z naszych czytelników, pan Piotr Traczykowski z Instytutu Podstawowych Problemów Techniki PAN, postanowił wylać nam na głowę kubeł zimnej wody... :)
Przedstawiamy jego opinię na temat możliwości zastosowania metody FEM (obecnie powszechnie stosowanym narzędziu obliczeń inżynierskich) w symulacjach w czasie rzeczywistym na komputerach klasy PC:
„Kila słów o Metodzie Elementów Skończonych (Finite Element Method, Finite Element Modelling - z reguły oznaczają to samo). Metoda elementów skończonych (MES) jest obecnie powszechnie stosowanym narzędziem obliczeń inżynierskich. Pierwsze prace stosujące metodę elementów skończonych zostały opublikowane w latach czterdziestych obecnego wieku, potem wraz z powstaniem pierwszych komputerów starano się zaadaptować ja numerycznie - czyli metoda jest bardzo stara i jakiekolwiek twierdzenia o tym ze cos wymyślili panowie z Codemasters nie pasują tutaj.
Teraz kilka słów jak to działa i dlaczego to, co zobaczymy w grze będzie może i realistycznie wyglądało, ale z realizmem wiele wspólnego mieć nie będzie.
1. Analizowany obszar dzieli się na pewną skończoną liczbę geometrycznie prostych elementów (od prętów po różne bryły przestrzenne), tzw. elementów skończonych.
2. Zakłada się, że te połączone są ze sobą w skończonej liczbie punktów znajdujących się na obwodach. Noszą one nazwę węzłów.
3. Obiera się pewne funkcje określające rozkład analizowanej wielkości fizycznej wewnątrz elementów skończonych, w zależności od wartości tych wielkości fizycznych w węzłach. Funkcje te noszą nazwę funkcji kształtu.
4. Teraz ustala się algebraiczne układy równań - mocno skomplikowane, wykorzystuje się rachunek tensorowy, różniczkowy i całkowy. Te równania zajmują masę pamięci - wszystko zależy od tego jak mamy zdefiniowaną siatkę - przy okazji, ta siatka nie musi się wcale pokrywać z tym, co będziemy widzieli na ekranie w grze - można sobie zasymulować samochód nawet na 10 elementach. Generalnie, im więcej elementów tym lepiej, (ale są wyjątki) dla precyzji obliczeń, ale gorzej dla procesora i pamięci w naszym komputerze.
5. Pewne elementy MES (FEM) są wykorzystywane w AutoCAD'ach - ze są to programy wymagające dużej mocy obliczeniowej chyba nie musze pisać.
To jest ogólny zarys jak działa MES, dlaczego pakowanie tego do gier nie ma sensu? Proste, PC w chwili obecnej jest zbyt słaby żeby jednocześnie rozwiązywać nieliniowe układy równań itp., obrabiać grafikę, generować dźwięk i obliczać, co przeciwnicy robią na torze - przeciwnicy, którzy także powinni być zamodelowani MES'em. Aby działało to w miarę płynnie na dzisiejszych PC to siatka elementów musi być bardzo "rzadka" i algorytm liczący "zgniecenia" musi być bardzo prosty - a to już chyba było nawet w "Destruction Derby" - tak, więc, jak dla mnie żadna nowość, nazwali sobie to, co już było jakąś mądrą nazwą i tyle.
Podsumowując, albo Codemasters ma cos zupełnie innego na myśli pisząc FEM i nazywając to Finite Element Modelling, albo sami do końca nie wiedzą, co robią, bo szczerz mówiąc to z osobistych doświadczeń wątpię czy grę komputerową, która ma przestawiać wyścigi samochodowe "uciągnąłby" ośmioprocesorowy CRAY.”