Matali Physics jest wielowątkowym, multi-platformowym w pełni funkcjonalnym rozwiązaniem zapewniającym kompleksowe wsparcie w następujących obszarach:
Silnik umożliwia:
- Tworzenie kształtów i wykrywanie ciągłych kolizji pomiędzy nimi.
- Każdy kształt może zawierać:
- Kształt podstawowy jak sfera, półsfera, sześcian, prostopadłościan, cylinder, dwupromieniowy cylinder (stożek ścięty), stożek, kapsuła, czworościan, otoczka wypukła, wypukła siatka trójkątów, niewypukła siatka trójkątów, mapa wysokości, płyn, trójkąt, punkt, odcinek, płaszczyzna.
- Dodatkowe kształty między którymi dostępne są operacje: sumy Minkowskiego i budowy otoczki wypukłej.
- Każdy kształt może zostać:
- Przesunięty
- Obrócony
- Przeskalowany niezależnie na osiach X,Y,Z (geometryczne skalowanie kształtu zmienia jego właściwości fizyczne takie jak masa i momenty bezwładności).
- Dla każdego kształtu można uzyskać wypukły zbiór trójkątów.
- Obsługę prostych niewypukłych siatek trójkątów jako obiektów niestatycznych poprzez rozkład na obiekty wypukłe (ang. convex decomposition). Silnik posiada wbudowane funkcje do przekształcenia takich siatek do zbioru obiektów wypukłych (obiektów fizyki i/lub kształtów i/lub kształtów podstawowych).
- Bezpośrednią obsługę złożonych niewypukłych siatek trójkątów dla zarówno statycznych, nieruchomych jak i dynamicznych, ruchomych obiektów.
- Wykonywanie zaawansowanych operacji na dowolnym zbiorze trójkątów poprzez kontroler zbiorów trójkątów.
- Tworzenie siatek trójkątów.
- Siatki mogą być tworzone dla:
- Kształtów predefiniowanych jak sfera, półsfera, sześcian, prostopadłościan, cylinder, dwupromieniowy cylinder (stożek ścięty), stożek, kapsuła, torus, tuba, trójkąt, płaszczyzna.
- Dowolnych kształtów użytkownika.
- Siatki budowane są poprzez zarządców: regionów, wierzchołków i trójkątów.
- Siatki kształtów predefiniowanych posiadają regulowaną liczbę stosów i plastrów.
- Siatki mogą być odczytywane jako tablice indeksowanych lub nieindeksowanych wielokątów.
- Wczytywanie dowolnych zbiorów trójkątów i używanie ich jako brył wypukłych.
Silnik umożliwia:
- Ciągłą detekcję kolizji pomiędzy różnymi typami kształtów.
Silnik umożliwia:
- Tworzenie materiałów. Każdy materiał definiuje (między innymi):
- Tarcie statyczne i dynamiczne oraz współczynnik odbicia pomiędzy obiektami.
- Parametry określające wygląd obiektów (kolor i przezroczystość). li>
- Parametry określające trwałość obiektów.
Silnik umożliwia:
- Tworzenie wiązań. Każde wiązanie zawiera (między innymi):
- Limity odległości dla osi X, Y, Z.
- Limity kątowe dla osi X, Y, Z zdefiniowane jako quaterniony lub kąty Eulera.
- Tryb pracy sprężyny dla limitów odległości i kątowych.
- Parametry opisujące trwałość wiązania.
- Modelowanie wiązań poprzez dodatkowy tryb ich odkształcania. Możliwe zastosowania to efekty specjalne, modelowanie klatek kluczowych animacji, itp.
- Tworzenie animacji poprzez sterowanie wiązaniami (odległością i kątami).
Silnik umożliwia:
- Tworzenie w pełni dynamicznych scen. Wszystkie sceny mogą być zbudowane ze złożonych destrukcyjnych obiektów.
- Każdy obiekt sceny może zawierać (między innymi):
- Kształt
- Wiązania
- Materiał
- Dźwięk
- Światło
- Kamerę
- Kontrolery
- Każdy obiekt sceny posiada następujące funkcje wykrywania kolizji:
- Obiekt-obiekt
- Obiekt-promień
- Obiekt-odcinek
- Każdy obiekt sceny w połączeniu z innymi obiektami sceny może tworzyć grupę obiektów.
- Każdy obiekt sceny lub grupa obiektów z wiązaniami może zostać podczas inicjalizowania obrócona, przesunięta i przeskalowana.
- Każda scena jest przetwarzana w wielu wątkach.
- Jednoczesne sekwencyjne przetwarzanie wielu scen. Możliwe zastosowania to fizyczne kontrolki, systemy menu oraz efekty specjalne.
- Ustalenie kolejności oraz sposobu rysowania obiektów.
- Obsługę obiektów przezroczystych (w tym obsługę obiektów o zmiennej przezroczystości).
- Zarządzanie obiektami poprzez zarządców obiektów. Zarządcy obiektów umożliwiają (między innymi):
- Odczyt obiektu
- Dodanie obiektu
- Usunięcie obiektu
- Wyszukiwanie obiektu
- Sprawdzenie ilości obiektów
- Wykorzystanie wielu rdzeni procesorów wielordzeniowych poprzez wielowątkowy rdzeń silnika.
Silnik umożliwia:
- Tworzenie kamer. Każda kamera zawiera (między innymi):
- Ostrosłup widoku
- Macierz widoku
- Macierz rzutowania
- Tworzenie własnych kontrolerów. Kontrolery umożliwiają (między innymi):
- Zmianę parametrów obiektów
- Animowanie obiektów
- Reakcję na kolizje
- Rysowanie obiektów
- Wykorzystanie wewnętrznych kontrolerów takich jak:
- Kontroler kursora (dostarcza funkcji do obsługi kursora)
- Kontroler ScreenToRay (umożliwia rzucenie promienia w przestrzeni 3D dla podanych współrzędnych ekranowych)
- Kontroler powierzchni płynu (umożliwia stworzenie sinusoidalnych lub kosinusoidalnych zaburzeń powierzchni płynu w czasie rzeczywistym)
- Kontroler mapy wysokości (ang. heightmap) (umożliwia deformację mapy wysokości w czasie rzeczywistym)
- Kontroler zbiorów trójkątów (umożliwia dodanie trójkątów do dowolnego zbioru trójkątów)
- Kontroler trwałości złożonych obiektów (umożliwia rozpad grupy obiektów niepołączonych wiązaniami)
- Ustalenie priorytetów symulacji w celu określenia kolejności wywołań kontrolerów użytkownika.
- Obsłgę sprzężenia zwrotnego siły.
- Obsługę lokalnej i globalnej grawitacji.
- Obsługę przełączników.
- Obsługę czasu życia obiektów fizycznych poprzez liczniki ramek.
Silnik umożliwia:
- Tworzenie kontrolera postaci. Kontroler postaci dostarczony jest z kodem źródłowym.
Silnik umożliwia:
- Symulację wymyślonych lub istniejących w rzeczywistości pojazdów. Symulowane pojazdy mogą posiadać układ sterowniczy (poprzez kontrolery i/lub przełączniki) i są tworzone jako złożone grupy obiektów połączone wiązaniami. Wszystkie przykładowe obiekty dostarczone są z kodem źródłowym.
Silnik umożliwia:
- Obsługę symetrycznej i asymetrycznej, statycznej lub niestatycznej mapy wysokości.
- Każda mapa wysokości może zostać zmodyfikowana w czasie rzeczywistym przez kontroler mapy wysokości. Kontroler mapy wysokości umożliwia również kopiowanie bloków danych do mapy wysokości.
- Wartość tarcia i współczynnika odbicia dla każdego punktu mapy wysokości może zostać zmieniona w czasie rzeczywistym.
- Każdy statyczny kształt mapa wysokości może być przedmiotem przekształceń takich jak obrót, przesunięcie i skalowanie.
- Wartości wysokości, tarcia i współczynnika odbicia dla mapy wysokości są w pełni interpolowane.
- Normalizacja mapy wysokości może zostać włączona lub wyłączona.
- Jedna scena fizyki może zawierać wiele map wysokości (statycznych i/lub niestatycznych).
- Obsługę powierzchni płynu. Powierzchnia płynu jest powierzchnią statycznego lub niestatycznego kształtu płyn.
- Każda powierzchnia płynu może zostać zmodyfikowana w czasie rzeczywistym przez kontroler powierzchni płynu.
- Każdy statyczny kształt płyn może być przedmiotem przekształceń takich jak obrót, przesunięcie i skalowanie.
- Jedna scena fizyki może zawierać wiele kształtów płyn (statycznych i/lub niestatycznych) z różnymi kontrolerami powierzchni płynu.
- Skalowanie pływalności oddzielnie dla każdego obiektu fizyki.
Silnik umożliwia:
- Obsługę pól sił. Zasięg pola sił może zostać określony poprzez dowolny kształt podstawowy.
Silnik umożliwia:
- Obsługę tkanin punktów. Tkanina punktów jest w pełni zniszczalna.