Texturatlas
Ein Texturatlas kombiniert mehrere Texturen in einem einzigen Bild, damit Objekte ein Material teilen können, wodurch Texturbindungen reduziert und das Batching ermöglicht wird, das Draw Calls in Spielen und Echtzeit-Anwendungen verringert.
Was ist ein Texturatlas?
Ein Texture Atlas (für 2D auch Sprite Sheet genannt) ist ein einzelnes großes Texturbild, das mehrere kleinere Texturen zusammengepackt enthält. Statt separate Texturdateien für jedes Objekt zu laden, lädt die GPU einen Atlas und nutzt UV-Koordinaten, um für jedes Mesh die korrekte Region abzutasten.
Warum Texture Atlases verwenden?
Draw Calls werden nach Material und Render-State gebündelt, daher können Objekte mit unterschiedlichen Texturen meist nicht zusammen gezeichnet werden. Mehr Draw Calls = niedrigere Bildraten. Atlases lassen viele Objekte ein Material teilen, damit sie gebündelt werden können:
- Reduzieren von Draw Calls: mehrere Objekte teilen ein Material und werden in weniger Durchgänge gebündelt
- Weniger Texturbindungen: die GPU wechselt den Textur-State seltener
- Ermöglichen von Batching: GPU kann viele Objekte in einem Durchgang rendern
- Verbessern von Ladezeiten: weniger Datei-Anfragen
Wann man Atlases verwendet
| Szenario | Atlas-Vorteil |
|---|---|
| Mobil-Spiele | Kritisch (begrenztes Draw-Call-Budget) |
| Open-World-Szenen | Viele Requisiten, die Materialien teilen |
| UI/HUD-Elemente | Alle Icons in einem Blatt |
| Voxel-/Block-Spiele | Alle Block-Texturen in einem Atlas |
| Web-3D (Three.js) | Minimiert WebGL-Zustandswechsel |
Atlasing passt natürlich zu einer schlanken Polygonanzahl und einem vollständigen PBR-Materialsatz, um Echtzeit-Szenen schnell zu halten. Für einen Spiel-Engine-Workflow siehe unseren Leitfaden zum Unity-Texture-Baking für Spiel-Assets.
Texturatlas in Sloyd
Wenn du mehrere Modelle aus Sloyd für die Nutzung in einer einzigen Szene exportierst, können ihre Texturen effizient gepackt werden. Sloyds GLB-Exporte nutzen optimierte Textur-Layouts, die gut mit Spiel-Engine-Atlas-Workflows in Unity und Unreal funktionieren.