Funkcje podstawowe
Matali Physics jest wielowątkowym, multi-platformowym w pełni funkcjonalnym rozwiązaniem zapewniającym kompleksowe wsparcie w następujących obszarach:

Kształty i siatki

Kształty i siatki trójkątów

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.
Ccd

Ciągła detekcja kolizji

Silnik umożliwia:






  • Ciągłą detekcję kolizji pomiędzy różnymi typami kształtów.
Materiały

Materiały

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ść).
    • Parametry określające trwałość obiektów.
Wiązania

Wiązania

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).
Zarządzanie sceną

Zarządzanie sceną i obiektami

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.
Sterowanie kamerą

Sterowanie kamerą i obiektami

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.
Kontroler postaci

Kontroler postaci

Silnik umożliwia:






  • Tworzenie kontrolera postaci. Kontroler postaci dostarczony jest z kodem źródłowym.
Dynamika pojazdu

Dynamika pojazdu

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.
Powierzchnie terenu

Powierzchnie terenu i płynu

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.
Pola sił

Pola sił

Silnik umożliwia:






  • Obsługę pól sił. Zasięg pola sił może zostać określony poprzez dowolny kształt podstawowy.
Dynamika tkaniny

Dynamika tkaniny punktów

Silnik umożliwia:






  • Obsługę tkanin punktów. Tkanina punktów jest w pełni zniszczalna.