Moduły Matali Render
Opis modułu Matali Render
Matali Render to zaawansowany, nowoczesny, wieloplatformowy, wydajny silnik grafiki. Matali Render jest częścią środowiska Matali Physics.
Zaawansowane renderowanie
API graficzne WsparcieDirectX 12 Vulkan Metal • Zunifikowany renderer dla urządzeń mobilnych, komputerów stacjonarnych, platform TV i konsol gier korzystający z niskopoziomowych API grafcznych nowej generacji i wprowadzający jeden łatwy w użyciu interfejs API wysokiego poziomu zbudowany na ich podstawie • Renderowanie oparte na fizyce (PBR) • Zaawansowane zarządzanie wieloma teksturami, buforami i stanami renderowania • Proceduralne niebo z rozpraszaniem atmosferycznym oraz płynnym przejściem dzień/noc lub skybox • Renderowanie części podwodnej z podzieloną powierzchnią wody • Renderowanie objętości płynu • Dwustronne przezroczyste powierzchnie • Przezroczystość i tekstury z kanałem alfa • Billboarding (obiekty 2D w środowisku 3D) • Zaawansowany billboarding • Instancjowanie (siatki trójkątów i cienie) • Wsparcie dla opartych na fizyce kontrolek GUI • Konturowanie/obrysowywanie obiektów • Animowanie współrzędnych UV • Korekcja gamma
Światła, cienie i mgła
• Zunifikowany system oświetlenia, cieniowania i zamglenia • Okluzja otoczenia w przestrzeni ekranu (SSAO) • Nielimitowana liczba kierunkowych źródeł światła • Nielimitowana liczba punktowych źródeł światła • Nielimitowana liczba źródeł światła typu reflektor • Nielimitowana liczba projektorów typu reflektor i reflektor prostokątny • Możliwość łączenia wielu projektorów w oddzielne, podlegające destrukcji byty • Możliwość ograniczenia wpływu źródeł światła do wybranych obiektów • Światła o zmiennym natężeniu • Cienie o miękkich krawędziach • Cienie od kierunkowych źródeł światła • Cienie od punktowych źródeł światła • Cienie od źródeł światła typu reflektor • Cienie od projektorów typu reflektor i reflektor prostokątny • Cienie dla tekstur z kanałem alfa • Precyzyjne obliczenia cieni (cienie nie wymagają czasochłonnego dobierania biasu) • Płynne przejścia między kaskadami cieni • Regulowana liczba kaskad cieni • Cienie o dalekim zasięgu • Mgła (liniowa, wykładnicza, płaszczyznowa z granicami, punktowa objętościowa, objętościowa o kształcie stożka) • Warianty mgły płaszczyznowej • Mgła (punktowa objętościowa, objętościowa o kształcie stożka) z cieniami wolumetrycznymi • Nielimitowana liczba źródeł mgły • Kontrolowana interakcja światła i mgły z powierzchniami przezroczystymi
Czcionki i tekst
• Skalowane czcionki bitmapowe • Regulowany kerning • Wygładzanie • Zestawy czcionek
Mapy i techniki mapowania
• Mapy sześcienne i mapowanie sześcienne • Mapy normalnych i mapowanie normalnych w przestrzeni stycznej • Mapy wysokości i mapowanie wysokości (mapowanie paralaksy) • Mapowanie normalnych i mapowanie paralaksy oparte na odległości od obserwatora
Wieloplatformowy
Wspierane platformy Android 10 (poziom API 29) i nowsze Android TV 10 (poziom API 29) i nowsze *BSD (głównie FreeBSD 12.2 i nowsze) iOS 15 i nowsze iPadOS 15 i nowsze Linux (dystrybucje) macOS 12 Monterey i nowsze Steam Deck tvOS 15 i nowsze UWP Desktop UWP Xbox Series X/S Windows 11 Windows 10 Platformy Dostępny jako Steam Deck, UWP, Windows Skompilowana biblioteka statyczna (.lib) Android, Android TV, *BSD, iOS, iPadOS, Linux, macOS, Steam Deck, tvOS Skompilowana biblioteka statyczna (.a) Obsługiwane typy aktywności Android Native Activity
Często zadawane pytania
- Wiem, że używacie głównie niskopoziomowych API graficznych. Jak w praktyce wykorzystuje się silnik Matali Render? Czy na przykład muszę napisać tysiące linii kodu, aby wyświetlić pojedynczą teksturę?
- Silnik Matali Render oferuje zaawansowaną i zunifikowaną infrastrukturę kodu dla wszystkich wspieranych niskopoziomowych API graficznych: DirectX 12, Vulkan, Metal, itp. W większości przypadków nie ma znaczenia, jakiego API używasz. Wszystkie wymagane operacje są wykonywane podobnie jak dla API graficznych wysokiego poziomu w niewielkiej liczbie linii kodu, przy jednoczesnym zachowaniu elastyczności i wydajności niskopoziomowych API graficznych.
- Co rozumiecie przez stwierdzenie "Nielimitowana liczba…"?
- Stwierdzenie oznacza, że liczba obiektów danego typu nie jest ograniczona przez silnik, ale jest regulowana przez programistę i zależy od wielkości dostępnych zasobów, wydajności platformy docelowej itp.
- Czy używacie wrapperów lub emulatorów podczas korzystania z API Metal?
- Nie. API Metal jest wywoływany bezpośrednio.
- Czy korzystacie z zewnętrznych rozwiązań lub innych zewnętrznych bibliotek lub kodów źródłowych, które upraszczają korzystanie z niskopoziomowych API graficznych? Jeśli tak, jaka jest licencja na te rozwiązania/biblioteki/kody?
- Nie, nie używamy. Opieramy się wyłącznie na własnych rozwiązaniach.