Die Inhalte dieser Website wurden mithilfe künstlicher Intelligenz (KI) oder maschineller Übersetzungstechnologie übersetzt und können Fehler enthalten.

Skip to content

Vorstellung von SLIM: Skalierbare, leichtgewichtige interaktive Modelle

Die Leistungsfähigkeit von Lightweight Rendering Composites nutzen, um größere und detailreichere Welten für jedes Gerät zu erschaffen

SLIM Car Comparison.webp

Roblox beherbergt Millionen von Erlebnissen, von einfachen Minispielen bis hin zu riesigen offenen Welten voller hochauflösender 3D-Assets. Unser Ziel ist es, die immer dichteren und komplexeren Erlebnisse zu unterstützen, die sich die Entwickler auf einem breiten Spektrum von Benutzergeräten vorstellen. Dies erfordert Innovationen in unserer Engine, unseren Content-Delivery-Systemen und unserer Infrastruktur. Scalable Lightweight Interactive Models (SLIM) ist Teil einer mehrteiligen Entwicklungsinitiative, die es Entwicklern ermöglicht, ihre großartigen künstlerischen Visionen zu verwirklichen, ohne Kompromisse bei der Leistung einzugehen. 

Mit SLIM können Entwickler automatisch leichtgewichtige Darstellungen jedes Objekts in einem Roblox-Erlebnis erstellen und so die Anzahl der Draw Calls, Dreiecke und Datenmodellinstanzen minimieren, die der Client benötigt, um eine robuste, nahtlose Welt zu rendern. SLIM bietet unserem Streaming-Modell leistungsstarke neue Möglichkeiten zur Optimierung von Inhalten, sodass sowohl ein Nutzer mit einem High-End-Gaming-PC als auch ein Nutzer mit einem Low-End-Mobilgerät dasselbe Erlebnis mit der höchsten Wiedergabegüte genießen können, die ihr Gerät zulässt.

SLIM Scene.webp
The above scene uses far fewer data model instances, triangles, and draw calls with instance streaming and SLIM enabled.

Ohne Instanz-Streaming & SLIM

Mit Instanz-Streaming & SLIM

Instanzen des Client-Datenmodells

159.745

92.536

Dreiecke

20 Mio.

3,35 Mio.

Draw Calls

2.402

1.454

Zwei Säulen des Streamings: Instanzen und Assets

Wenn Sie einen Film auf Ihrem bevorzugten Streaming-Dienst ansehen, lädt Ihr Gerät nicht die gesamte Datei herunter, bevor Sie mit dem Anschauen beginnen. Es lädt nur so viele Daten herunter, dass Sie sofort mit dem Anschauen beginnen können, und lädt dann kontinuierlich (oder puffert) die nächsten paar Sekunden, damit das Erlebnis nicht unterbrochen wird. Wenn du auf einem Low-End-Gerät oder mit einer langsamen Verbindung streamst, passt sich die Plattform automatisch an, indem sie dir eine Version des Inhalts mit geringerer Auflösung sendet, während sie genügend Daten herunterlädt, um den Inhalt in hoher Auflösung zu streamen. 

Roblox nutzt ein ähnliches Konzept, um Inhalte on-the-fly zu streamen, doch die Daten, die für die Darstellung einer hochauflösenden 3D-Simulation erforderlich sind, stellen eine besondere Herausforderung dar. Während ein Video eine lineare Zeitachse mit Inhalten aus einer einzigen Perspektive aufweist, bestehen Roblox-Erlebnisse aus riesigen, interaktiven 3D-Welten voller verschiedener Arten von Assets, die aus vielen vom Nutzer gesteuerten Perspektiven betrachtet werden können. Hinzu kommen 151,5 Millionen täglich aktive Nutzer, die spielen, erkunden und letztendlich Inhalte von einer Vielzahl von Geräten streamen – hier liegt ein enormes Potenzial für die Optimierung der Bereitstellung und Darstellung von Inhalten.1

Alles, was ein Nutzer auf Roblox sieht – ein Auto, einen Baum, einen Avatar oder ein Gebäude – wird innerhalb der Engine als eine Reihe von Instanzen dargestellt. Ein fahrbares Auto wird beispielsweise in Instanzen für Stoßstangen, Türen, Räder und so weiter unterteilt. Jede Instanz wird in der Erfahrung unter Verwendung mehrerer Assets wie 3D-Meshes, Texturen, Animationen und Audio erstellt.

Nahezu das gesamte Streaming auf Roblox lässt sich in zwei Kerntechnologien unterteilen: Instanz-Streaming und Asset-Streaming.

  • Das Instanz-Streaming bestimmt, welche Instanzen das Gerät eines Nutzers streamen muss. Es ist nicht notwendig, Teile der Experience zu streamen, die der Nutzer noch nicht sehen oder mit denen er noch nicht interagieren kann. Im obigen Beispiel werden nur die Instanzen, die die nahegelegenen Gebäude darstellen, in den Client gestreamt.
  • Das Asset-Streaming bestimmt die Qualität der gestreamten Instanzen. Es ist nicht notwendig, eine hochauflösende 4K-Textur für einen Berg herunterzuladen, der so weit entfernt ist, dass der Nutzer keine feinen Details erkennen kann. Im obigen Bild verwenden Gebäude in der Ferne und Gebäude, die nur wenig Platz auf dem Bildschirm einnehmen, dezimierte Meshes und Texturen mit niedrigerer Auflösung. 

Das zentrale Gehirn für diesen Vorgang ist ein System namens Harmony, das die verfügbaren Ressourcen jedes Nutzers bei jedem Frame überwacht. Harmony passt sowohl das Instanz- als auch das Asset-Streaming an, um basierend auf dem Arbeitsspeicher, der GPU- und CPU-Auslastung sowie der Netzwerkbandbreite des Geräts das bestmögliche Erlebnis zu bieten. Bei einem High-End-Gaming-PC dreht Harmony alles auf höchste Qualität hoch. Bei einem Mobilgerät mit schwacher Verbindung wird die Qualität automatisch heruntergeregelt, um ein flüssiges Nutzererlebnis zu gewährleisten.

Das Team diskutierte die Technologie hinter Streaming, Cloud-Transcoding und SLIM in Folge 30 des Tech Talks-Podcasts. 

SLIM: Skalierbare, leichtgewichtige interaktive Modelle

Die Kernidee von SLIM ist einfach, aber leistungsstark: SLIM kann automatisch mehrere leichtgewichtige, optimierte Darstellungen jedes Objekts oder Modells in der Welt eines Entwicklers erstellen und diese auf dem Server speichern, um sie zur Laufzeit abzurufen. Der Client jedes Benutzers kann dann dynamisch zwischen der Darstellung der ursprünglichen Instanzen und Assets oder einer der leichtgewichtigen SLIM-Darstellungen wechseln, je nach den verfügbaren Ressourcen des Geräts. 

SLIM nutzt zwei Haupttechniken, um eine leichtgewichtige Darstellung zu generieren:

1. Compositing

Zunächst fasst SLIM mehrere Teile zu weniger Teilen zusammen. Anstatt dass das unten abgebildete Auto 112 separate Meshes und 24 separate Texturen benötigt, benötigt seine leichtgewichtige Darstellung möglicherweise nur ein Mesh und vier Texturen. Der Compositing-Prozess ist präzise darauf abgestimmt, wie die Engine den Inhalt letztendlich rendert, wodurch unsichtbare Geometrie innerhalb eines Objekts eliminiert und die Anzahl der zum Rendern erforderlichen Draw Calls reduziert wird.

SLIM Car Comparison.webp

2. Detailgrad (LoD)

Nach der Zusammenstellung des Modells generiert SLIM mehrere Versionen mit unterschiedlichem Detaillierungsgrad. Das bedeutet, dass Versionen des 3D-Netzes mit deutlich weniger Dreiecken erstellt und Texturen mit wesentlich geringerer Auflösung generiert werden, so wie wir es bei jedem einzelnen Netz- oder Textur-Asset mit herkömmlichen LoD-Techniken tun. Diese Techniken lassen sich bei der Anwendung auf SLIM-Modelle weiter optimieren, da wir über die individuellen Koordinatenrahmen jeder zugrunde liegenden Instanz verfügen. Dadurch erhalten wir einen vollständigen Kontext darüber, wie der Ersteller die gemeinsame Darstellung dieser Assets beabsichtigt hat. Mit diesem Wissen ermöglicht uns SLIM, fundiertere Entscheidungen darüber zu treffen, wo unnötige Details entfernt werden sollten und wo die Details beibehalten werden sollten, die den Nutzern auffallen.

undefined

Die richtige Darstellung zur richtigen Zeit

Sobald wir mehrere Darstellungen eines Objekts erstellt haben, muss SLIM entscheiden, welche für das Gerät eines bestimmten Benutzers verwendet werden soll oder ob stattdessen traditionelle Rendering-Techniken zum Einsatz kommen. Das System unterteilt die Welt in drei verschiedene Bereiche. Eine einfache Möglichkeit, sich diese Bereiche vorzustellen, besteht darin, sich konzentrische Kreise mit zunehmender Detailgenauigkeit vorzustellen, die sich vom Player aus nach außen erstrecken.

undefiniert
Streaming-Grenzen sind nicht wirklich kreisförmig. Ihre Form hängt von einer Vielzahl von Faktoren ab.

HH-Region (Heavyweight-Instanzen, Heavyweight-Rendering)

In der HH-Region werden vollständige, Heavyweight-Instanzen vom Server an das Client-Datenmodell gestreamt, und der Client bestimmt für jede Instanz die spezifische Asset-Darstellung, die heruntergeladen und gerendert werden soll. Skalierung kann in dieser Region weiterhin mit Mesh-LoDs und Textur-Mips erreicht werden, es findet jedoch keine Komposition statt. Vor SLIM wurden alle Instanzen, die in eine Experience gestreamt wurden, auf diese Weise gerendert. 

HL-Bereich (Heavyweight-Instanzen, Lightweight-Rendering) 

Der HL-Bereich liegt zwischen dem HH- und dem LL-Bereich. In diesem Bereich verfügt der Client über die Heavyweight-Instanzen im Datenmodell, kann jedoch wählen, ob er die Darstellung über die vollständige Render-Pipeline oder die SLIM-Pipeline durchführen möchte. Dieser Bereich passt sich an, um einen nahtlosen Übergang zwischen dem HH- und dem LL-Bereich zu gewährleisten, selbst wenn der Benutzer auf Netzwerklatenz stößt. Der Übergangspunkt zwischen der HH- und der HL-Region ist dynamisch, wodurch Harmony sofort nach oben oder unten skalieren kann, um auf einen Ressourcenanstieg in beide Richtungen zu reagieren.

LL-Region (Lightweight-Instanzen, Lightweight-Rendering) 

In der LL-Region streamt der Client nur extrem leichtgewichtige Darstellungen der Instanzen, die zur Definition eines Koordinatenrahmens für ein SLIM-Modell erforderlich sind, zusammen mit den absolut notwendigen Metadaten. In dieser Region werden nur leichtgewichtige, zusammengesetzte SLIM-Modelle gerendert, anstatt jeder einzelnen Instanz und jedes einzelnen Assets. Die LL-Region benötigt weitaus weniger Dreiecke und Draw-Calls und reduziert den Speicherverbrauch auf dem Gerät des Benutzers im Vergleich zum Streaming jeder Heavyweight-Instanz und der Verwendung der traditionellen Render-Pipeline.

Diese Regionstechnik ermöglicht es dem Client, die gesamte sichtbare Welt jederzeit zu rendern, ohne die vollen Rechenkosten für die gleichzeitige Nutzung jeder schwergewichtigen Instanz und jedes Assets zu verursachen. Weit entfernte Objekte sind hochoptimierte, leichtgewichtige Darstellungen, die durch ihre hochauflösenden Entsprechungen ersetzt werden, sobald sich der Nutzer nähert. Die Fähigkeit von SLIM, Composites und mehrere skalierte LoD-Modelle zu erstellen, gibt Harmony mehr Hebel an die Hand, um die Asset-Qualität für das Gerät jedes Nutzers zu optimieren.

Wenn alles zusammenkommt, sollte der Spieler sich vollständig in das Spiel eintauchen können und weder Übergänge noch unterschiedliche Detailstufen bemerken.

Die Zukunft: Wie geht es mit SLIM weiter?

SLIM ist nur der erste Schritt auf einem mehrstufigen Weg, und wir sind gespannt darauf zu sehen, wie Entwickler die Technologie in ihre Arbeitsabläufe integrieren. Wir prüfen derzeit, SLIM in Zukunft in zwei Hauptrichtungen weiterzuentwickeln. 

Festlegen, was noch mit SLIM optimiert werden kann 

Wir beginnen mit den statischen Modellen, die Entwickler in Studio festlegen, aber in Zukunft wird SLIM in der Lage sein, einige der komplexesten Modelle auf Roblox zu optimieren: Plattform-Avatare. Avatare mit all ihren zugehörigen Animationen, mehrschichtigen Kleidungsstücken und Accessoires können für Entwickler eine unvorhersehbare Variable darstellen. Die Möglichkeit, Avatare mit SLIM zu optimieren, bedeutet, dass die Engine die Ressourcen, die ein einzelnes Avatar-Modell verbraucht, effektiv begrenzen kann.

Letztendlich möchten wir den Entwicklern die Möglichkeit geben, SLIM für Änderungen an dynamischen Modellen zu nutzen. Stellen Sie sich ein Modell vor, bei dem der Server aktiv Änderungen vornehmen kann (z. B. eine Tür öffnet sich oder ein Teil wird zerstört), aber mit ein paar cleveren Tricks der Client dieselbe leichtgewichtige Darstellung wiederverwenden kann.

Optimierung der SLIM-Pipeline 

Da wir nun über eine durchgängige Pipeline verfügen, die der Engine eine neue Dimension an Flexibilität bietet, konzentrieren wir uns auch darauf, die Pipeline selbst intelligenter, schneller und effizienter zu gestalten. Dazu gehören:

  • Neu-Atlassierung von Texturen: Intelligentes Zusammenfassen mehrerer Modelltexturen in einem einzigen, optimierten Textur-Sheet.
  • Automatische Segmentierung: Automatische Nutzung des semantischen und räumlichen Verständnisses der Welt, um die besten SLIM-fähigen Modelle zu identifizieren.
  • Leichtere Darstellungen: Für dynamische Objekte, die weniger latenzabhängig sind, untersuchen wir die Erzeugung von 2D-Darstellungen, deren Rendering auf dem Client praktisch keine Ressourcen beansprucht.
  • Hierarchisches SLIM: Das nacheinander Verschachteln von SLIM-Modellen, sodass ganze Gruppen von Instanzen vereinfacht werden können und die Engine dynamisch zwischen verschiedenen Granularitätsstufen wählen kann – z. B. von einem einzelnen Baum über einen Wald bis hin zu einer ganzen Landmasse voller Wälder und anderer Objekte.
  • Auflösung erhöhen: Derzeit konzentrieren wir uns auf die Optimierung der Leistung durch Verkleinerung, doch schon bald wird uns dasselbe System ermöglichen, die Auflösung von Assets für zukünftige Hardware zu erhöhen und dabei die ursprüngliche künstlerische Absicht des Entwicklers beizubehalten. Diese neue Architektur bedeutet, dass wir die verwendeten Darstellungen kontinuierlich verbessern können, während unsere Engine die Realität immer besser simuliert. 

SLIM ist in Kombination mit Harmony und dem Rest unserer Streaming- und Content-Delivery-Architektur ein gewaltiger Sprung nach vorne in unserer Vision, umfangreichere und detailreichere Welten für mehr Spieler zu unterstützen. Die enge Integration unserer Engine, der Content-Bereitstellung und der Cloud-Infrastruktur in Verbindung mit der riesigen Inhaltsbasis von Millionen von Entwicklern ermöglicht es uns, tief miteinander vernetzte Systeme aufzubauen, die das gesamte Erlebnis verbessern. Je besser unsere Engine die Realität simuliert, desto mehr können wir die von ihr verwendeten Darstellungen kontinuierlich verbessern. Heute konzentrieren wir uns auf die Optimierung der Leistung, aber schon sehr bald wird uns dasselbe System ermöglichen, Assets für zukünftige Hardware mit höherer Auflösung bereitzustellen und dabei die ursprüngliche künstlerische Absicht der Creator zu bewahren.

Wir bauen eine Plattform auf, die diese künstlerische Absicht nicht nur respektiert, sondern ihre Kreationen auch intelligent und automatisch an jeden Nutzer auf einer Vielzahl von Geräten überall dort liefern kann, wo Roblox verfügbar ist. Wir können es kaum erwarten zu sehen, was die Community damit erschafft.

1Stand: 3. Quartal 2025.