SLIM

*Deze inhoud is vertaald met behulp van AI (bèta) en kan fouten bevatten. Klik hier om deze pagina in het Engels te bekijken.

SLIM (Scalable Lightweight Interactive Models) is een automatisch optimalisatiesysteem dat lichte, geoptimaliseerde representaties van Models en platformavatars genereert met behulp van cloud-gebaseerde transcoding (het omzetten van assets naar efficiëntere formaten). Wanneer ingeschakeld, combineert SLIM meerdere onderdelen in minder draw calls (renderopdrachten die naar de GPU worden verzonden) en genereert het meerdere detailniveaus, waardoor de engine intelligent de beste representatie kan selecteren op basis van afstand, apparaatspecificaties en beschikbare middelen.

Zonder SLIM — gestreamde modellen zijn onzichtbaar
Met SLIM — geoptimaliseerde stand-ins blijven zichtbaar

SLIM biedt drie belangrijke voordelen:

  • Visuele kwaliteit
    — Afstandmodellen lijken gedetailleerder dan het legacy model niveau-van-detail systeem, met een betere trouw aan het origineel.
  • Consistente overgangen
    — Alle onderdelen binnen een model schakelen gelijktijdig detailniveaus, waardoor schokkende per-onderdeel overgangen worden geëlimineerd.
  • Prestaties
    — Composietmesh vermindert dramatisch het aantal draw calls, het aantal driehoeken en het geheugengebruik, waardoor rijkere scènes mogelijk zijn op alle apparaatsniveaus.

Verken SLIM in deze gepubliceerde games:

City People Cars SLIM Template — Wereldmodellen met SLIM ingeschakeld

SLIM Platform Avatars — 200 geanimeerde avatars gerenderd met SLIM

Vereisten

SLIM vereist het volgende:

  1. StreamingEnabled moet ingeschakeld zijn op het Workspace object. Zie ook streaming eigenschappen voor gerelateerde aanbevolen instellingen.
  2. De plaats moet opgeslagen zijn naar Roblox (niet een lokaal .rbxl bestand), aangezien SLIM cloud transcoding gebruikt om geoptimaliseerde assets te genereren. Als je lokaal test, publiceer de plaats en schakel dan SLIM in.
  3. Team Create moet ingeschakeld zijn voor de game, aangezien SLIM afhankelijk is van bijbehorende eigenschappen voor cloud asset generatie.

Technisch gedrag

Wanneer je een game publiceert of test met SLIM-ingeschakelde modellen, uploadt de engine modelgegevens naar een cloudservice die geoptimaliseerde composietmesh met meerdere detailniveaus genereert. Tijdens runtime halen clients deze assets van de CDN en selecteert de engine het juiste detailniveau op basis van afstand en apparaatspecificaties, waarbij elk SLIM-model wordt geclassificeerd in renderzones op basis van afstand van de camera:

Diagram dat de vier SLIM renderzones toont, gekleurd in lichtblauw, teal, geel en vermiljoen, uitstralend vanuit een speler karakter.
BereikData Model StatusRendering
Volledige instanties gestreamd.Traditionele part-voor-part rendering.
Volledige instanties gestreamd.De engine rendert de SLIM composiet wanneer dit efficiënter is.
Instanties gestreamd. Slechts een minimale placeholder bestaat in het DataModel, niet de volledige modelhiërarchie.SLIM composiet rendering.
Minimale placeholder in het DataModel.Niet gerenderd.

SLIM voor modellen

SLIM werkt het beste op modellen die statische wereldgeometrie vertegenwoordigen — gebouwen, props, voertuigen, terreinfeatures en andere omgevingsobjecten die niet veranderen tijdens runtime. Het toevoegen of verwijderen van onderdelen, het wijzigen van materialen of het aanpassen van geometrie tijdens runtime voorkomt dat SLIM het model correct rendert. Zie modelstructuur voor algemene richtlijnen voor modelstructuur en beperkingen voor de volledige lijst van uitsluitingen.

Om SLIM op een model in te schakelen, stel je de LevelOfDetail eigenschap in op SLIM in het Eigenschappen venster.

Het Eigenschappen venster met de LevelOfDetail eigenschap ingesteld op SLIM.

Wanneer SLIM is ingesteld op een model, doet de engine:

  1. Serialiseert de rendering-relevante eigenschappen van het model (geometrie, materialen, texturen, transformaties) in een compacte representatie. Ondersteunde instantietypen binnen het model zijn Part, MeshPart, Decal, Texture, SurfaceAppearance, PartOperation, NegateOperation, en SpecialMesh.
  2. Uploadt deze gegevens naar de cloud transcoding service bij de eerste publicatie of afspelen.
  3. De cloudservice genereert een gecompositeerde mesh met meerdere detailniveaus, verwijdert verborgen interne geometrie en optimaliseert texturen.
  4. Tijdens runtime halen clients de geoptimaliseerde SLIM asset op en renderen deze wanneer de engine het originele model streamt of wanneer SLIM efficiënter is dan het volledige model.

Als je game de legacy StreamingMesh instelling voor Model.LevelOfDetail gebruikt, kun je individuele modellen converteren door ze te selecteren en de eigenschap in het Eigenschappen venster te wijzigen, of je kunt meerdere modellen tegelijk batch-converteren met een script zoals het volgende in de Command Bar. Let op dat sommige modellen die werkten met StreamingMesh mogelijk aanpassingen nodig hebben voor SLIM, met name die met overlappende onderdelen of complexe PartOperation hiërarchieën.

Batch-Convert StreamingMesh to SLIM
for _, descendant in workspace:GetDescendants() do
if descendant:IsA("Model") and descendant.LevelOfDetail ==
Enum.ModelLevelOfDetail.StreamingMesh then
descendant.LevelOfDetail = Enum.ModelLevelOfDetail.SLIM
end
end

SLIM voor avatars

Platformavatars buiten het momenteel gestreamde gebied zijn standaard niet zichtbaar. Het inschakelen van SLIM avatars rendert standaard spelerkarakters — ongeacht hoeveel accessoires of kledinglagen ze hebben — als lichte, geanimeerde stand-ins die visuele trouw behouden tegen een fractie van de renderkosten.


De belangrijkste SLIM-specifieke eigenschap voor avatars is Workspace.EnableSLIMAvatars die moet worden ingesteld op Enabled in het Eigenschappen venster, naast LevelOfDetail ingesteld op SLIM op je niet-avatar wereldmodellen.

Het Eigenschappen venster met de EnableSLIMAvatars eigenschap ingesteld op Ingeschakeld.

Met EnableSLIMAvatars ingeschakeld, doet de engine:

  • Rendert een SLIM-versie wanneer een daadwerkelijk avatar model streamt.
  • Wisselt tussen SLIM en full-resolution representaties op basis van beschikbare middelen, zelfs binnen de streamingradius.
  • Beperkt SLIM-animaties op basis van scene belangrijkheid en beschikbare bandbreedte.

In tegenstelling tot model SLIM dat je alleen kunt testen door ver van een model te bewegen totdat het streamt, vereisen SLIM avatars meerdere spelers in de game om te observeren. Gebruik een van deze testmodi om SLIM avatars te testen:

  • Team Test — Sluit je aan met vrienden of alternatieve accounts om SLIM avatars op afstand te zien.
  • Server en Clients — Start twee of meer clientvensters waarin elke client avatar kopieën weergeeft die de anderen als SLIM renderen wanneer ze op afstand zijn.

Let op dat avatars getranscodeerd moeten zijn in een SLIM-ingeschakelde game voordat ze als SLIM verschijnen. Als avatars niet als SLIM worden gerenderd in je eerste test, sluit dan opnieuw aan na een moment om de transcoding te laten voltooien.

Beperkingen

BeperkingDetails
Streaming vereistSLIM functioneert alleen met StreamingEnabled ingesteld op true. Zonder streaming vallen SLIM-geschikte modellen terug op traditionele niveau-van-detail rendering.
Statische modellen alleenModel SLIM ondersteunt geen modellen die tijdens runtime zijn gewijzigd (onderdelen toegevoegd/verwijderd, eigenschappen gewijzigd) of modellen die animaties afspelen.
Humanoid instantiesDe engine sluit modellen met een Humanoid uit van statische model SLIM verwerking. Gebruik SLIM avatars voor geanimeerde spelerkarakters.
Avatar beperkingenSLIM avatars ondersteunen alleen R15 spelerkarakters. R6 rigs, NPC's en avatars met aangepaste verhoudingen vallen terug op standaard rendering.
Cloud afhankelijkheidDe cloudservice genereert en slaat SLIM-assets op de CDN op. Offline of lokale tests zonder een gepubliceerde plaats produceren geen SLIM-resultaten.
Zero-scale modellenDe engine sluit modellen met een Scale van 0 uit van SLIM verwerking.
Platform beschikbaarheidOp platforms waar SLIM nog niet wordt ondersteund, vallen modellen ingesteld op SLIM terug op Disabled.

Debugging

Om de status van SLIM-modellen beter te begrijpen, biedt Roblox verschillende debug tintmodi in de DebugVisualizations ⟩ SlimTintMode dropdown van de Developer Console. Let op dat dit menu alleen beschikbaar is voor makers die Bewerken rechten voor de game hebben.

Er zijn meerdere tintmodi om uit te kiezen. Zie Enum.SlimTintMode voor de kleurtoewijzingen van elke modus.

LOD kleurt elke mesh op basis van het huidige detailniveau met behulp van een blauw-naar-rood warmtemap. Blauw geeft het laagste detail aan en warmere kleuren geven hoger detail aan.


Je kunt ook SLIM debugvisualisaties in Studio zien door een tintmodus te selecteren uit het Visualisatie Opties menu:

Een close-up van het 3D viewport met de Visualisatie Opties knop aangegeven in de rechterbovenhoek.

Naast de LOD/DataModelState tintmodi, biedt Studio de TranscoderStatus tintmodus. Tijdens het bewerken is alleen deze tintmodus beschikbaar in het visualisatie-opties menu; tijdens het spelen zijn alle tintmodi beschikbaar. Zie Enum.SlimTranscoderStatus voor de kleurtoewijzingen van elke status.

Probleemoplossing

  • Controleer of StreamingEnabled true is.
  • Bevestig dat de plaats is gepubliceerd naar Roblox en dat Team Create is ingeschakeld.
  • Controleer of LevelOfDetail is ingesteld op SLIM voor het model.
  • Wacht 1–2 minuten na de eerste publicatie voor cloud transcoding om te voltooien, sluit dan opnieuw aan.
  • Zorg ervoor dat het model geen Humanoid instantie bevat.

PartOperation instanties voor solide modellering (unies, intersecties, negaties) renderen mogelijk niet correct in sommige SLIM-modellen. Als een unie ontbreekt of vervormd lijkt in de SLIM-representatie, probeer dan de aangetaste PartOperation in zijn eigen model te scheiden of de CSG-operatie te vereenvoudigen.

Z-fighting kan optreden wanneer onderdelen in het originele model overlappende of coplanare vlakken hebben. Om dit op te lossen:

  • Verplaats overlappende onderdelen iets uit elkaar (zelfs 0.01 studs is voldoende).
  • Vermijd perfect vlakke oppervlakken tussen aangrenzende onderdelen in hetzelfde model.

SLIM genereert UV-mapping opnieuw (hoe texturen op 3D-oppervlakken worden geprojecteerd) tijdens transcoding. Standaard Roblox-materialen kunnen iets andere tegelpatronen vertonen in vergelijking met het origineel. Om dit te verminderen:

  • Gebruik aangepaste texturen via SurfaceAppearance voor belangrijke oppervlakken.
  • Groepeer visueel gerelateerde onderdelen in hetzelfde model om consistente texturering te waarborgen.

Volledige lichaams- of vingeranimaties kunnen af en toe visuele artefacten vertonen als gevolg van timing van botreplicatie. Dit is een bekend probleem dat actief wordt verbeterd. Als het probleem ernstig is, controleer dan of animatiescripts de bottransformaties niet buiten de standaard animatiepijplijn wijzigen.

Het renderstatistiekenpaneel kan onjuiste driehoekentellingen rapporteren wanneer SLIM avatars zijn ingeschakeld. Dit is een bekende rapportagebug en heeft geen invloed op de werkelijke renderprestaties.

©2026 Roblox Corporation. Roblox, het Roblox-logo en Powering Imagination behoren tot onze geregistreerde en niet-geregistreerde handelsmerken in de VS en andere landen.