• Spiele
  • Branche
  • Ressourcen
  • Community
  • Lernen
  • Support
Entwicklung
Unity Engine
Erstellen Sie 2D- und 3D-Spiele für jede Plattform
HerunterladenAbonnements und Preise
Monetarisierung
In-App-Kauf (IAP)
Entdecken und verwalten Sie IAP über die Stores
Mediation
Maximieren Sie den Umsatz und optimieren Sie die Monetarisierung
Anzeigenqualität
Schützen Sie das Benutzererlebnis Ihrer App
Tapjoy
Langfristige Benutzerloyalität aufbauen
Alle Monetarisierungsprodukte
Nutzerakquisition
Nutzerakquisition
Entdecken Sie und gewinnen Sie mobile Benutzer
Unity Vector AI
Verbinden Sie Spieler mit den richtigen Spielen
Aura On-Device-Werbung
Erreichen Sie Benutzer auf dem Gerät zur Spitzenzeit der Interaktion
Alle Wachstumsprodukte
Anwendungsfälle
3D-Zusammenarbeit
Erstellen und überprüfen Sie 3D-Projekte in Echtzeit
Immersive Schulung
In immersiven Umgebungen trainieren
Kundenerlebnisse
Interaktive 3D-Erlebnisse erstellen
Alle branchenspezifischen Lösungen
Branchen
Fertigung
Betriebliche Exzellenz erreichen
Einzelhandel
In-Store-Erlebnisse in Online-Erlebnisse umwandeln
Automobilindustrie
Innovation und In-Car-Erlebnisse steigern
Alle Branchen
Technische Bibliothek
Dokumentation
Offizielle Benutzerhandbücher und API-Referenzen
Entwicklertools
Versionsfreigaben und Fehlerverfolgung
Roadmap
Bevorstehende Funktionen überprüfen
Glossar
Bibliothek technischer Begriffe
Einblicke
Fallstudien
Erfolgsgeschichten aus der Praxis
Best-Practice-Leitfäden
Experten Tipps und Tricks
Alle Ressourcen
Neues
Blog
Aktualisierungen, Informationen und technische Tipps
Neuigkeiten
Nachrichten, Geschichten und Pressezentrum
Community Hub
Diskussionen
Diskutieren, Probleme lösen und verbinden
Veranstaltungen
Globale und lokale Veranstaltungen
Gemeinschaftsgeschichten
Made with Unity
Präsentation von Unity-Schöpfern
Livestreams
Schließen Sie sich Entwicklern, Kreativen und Insidern an
Unity Awards
Feier der Unity-Schöpfer weltweit
Für jedes Niveau
Unity Learn
Meistern Sie Unity-Fähigkeiten kostenlos
Professionelles Training
Verbessern Sie Ihr Team mit Unity-Trainern
Neu bei Unity
Erste Schritte
Beginnen Sie noch heute mit dem Lernen
Unity Essential Pathways
Sind Sie neu bei Unity? Starten Sie Ihre Reise
Anleitungen
Umsetzbare Tipps und bewährte Verfahren
Bildung
Für Studierende
Starten Sie Ihre Karriere
Für Lehrkräfte
Optimieren Sie Ihr Lehren
Lizenzstipendium für Bildungseinrichtungen
Bringen Sie die Kraft von Unity in Ihre Institution
Zertifizierungen
Beweisen Sie Ihre Unity-Meisterschaft
Kundendienstoptionen
Hilfe erhalten
Wir helfen Ihnen, mit Unity erfolgreich zu sein
Erfolgspläne
Erreichen Sie Ihre Ziele schneller mit Expertenunterstützung
FAQ
Antworten auf häufige Fragen
Kontakt aufnehmen
Verbinden Sie sich mit unserem Team
Abonnements und Preise
Sprache
  • English
  • Deutsch
  • 日本語
  • Français
  • Português
  • 中文
  • Español
  • Русский
  • 한국어
Sozial
Währung
Kaufen
  • Produkte
  • Unity Ads
  • Abonnement
  • Unity Asset Store
  • Wiederverkäufer
Bildung
  • Schüler/Studierende
  • Lehrkräfte
  • Einrichtungen
  • Zertifizierung
  • Learn
  • Programm zur Entwicklung von Fähigkeiten
Herunterladen
  • Unity Hub
  • Datei herunterladen
  • Beta-Programm
Unity Labs
  • Labs
  • Veröffentlichungen
Ressourcen
  • Lernplattform
  • Community
  • Dokumentation
  • Unity QA
  • FAQ
  • Status der Dienste
  • Fallstudien
  • Made with Unity
Unity
  • Unser Unternehmen
  • Newsletter
  • Blog
  • Veranstaltungen
  • Stellenangebote
  • Hilfe
  • Presse
  • Partner
  • Investoren
  • Partner
  • Sicherheit
  • Social Impact
  • Inklusion & Vielfalt
  • Kontakt aufnehmen
Copyright © 2025 Unity Technologies
  • Rechtliches
  • Datenschutzrichtlinie
  • Cookies
  • Verkaufen oder teilen Sie nicht meine personenbezogenen Daten

"Unity", Unity-Logos und sonstige Marken von Unity sind Marken oder eingetragene Markenzeichen von Unity Technologies oder den zugehörigen verbundenen Unternehmen in den USA und anderen Ländern (weitere Informationen finden Sie hier). Alle anderen Namen oder Marken sind Marken ihrer jeweiligen Eigentümer.

Hero background image

Tipps zur mobilen Optimierung für technische Künstler - Teil I

Diese Website wurde aus praktischen Gründen für Sie maschinell übersetzt. Die Richtigkeit und Zuverlässigkeit des übersetzten Inhalts kann von uns nicht gewährleistet werden. Sollten Sie Zweifel an der Richtigkeit des übersetzten Inhalts haben, schauen Sie sich bitte die offizielle englische Version der Website an.
Klicken Sie hier.

Was Sie von dieser Seite erhalten: Tipps zur Optimierung von Kunstassets für mobile Spielentwickler, die mit Unity arbeiten. Dies ist der erste von zwei Artikeln zur Optimierung von Kunst für mobile Spiele.

Sie finden viele weitere Tipps zur mobilen Optimierung in diesem umfassenden E-Book und diesem Unity Learn-Kurs über 3D-Kunstoptimierung für mobile Anwendungen.

  • Konzentrieren Sie sich auf die Silhouette
  • Level-of-Detail (LOD) verwenden
  • Meshes kombinieren und Objekte ausblenden
  • Modelle importieren
  • Texturgrößen und Farbraum
  • Details in die Textur backen
  • Getönte Graustufen-Texturen
  • Texturfilterung
  • Texturgrößen und Farbraum
  • Texturen komprimieren
  • Texturkanäle verwenden, um mehrere Texturen in einer zu packen
  • UV-Unwrapping
3D-Darstellung eines Robotercharakters

Konzentrieren Sie sich auf die Silhouette

Sowohl Polygone als auch Vertices sind auf mobilen Plattformen rechenintensiv. Platzieren Sie Polygone in Bereichen, die wirklich zur visuellen Qualität der Anwendung beitragen, damit Sie Ihr Verarbeitungsbudget nicht verschwenden.

Aufgrund der kleinen Bildschirmgröße der meisten mobilen Geräte und der Position von 3D-Objekten in Ihrer Anwendung sind viele kleine Dreiecksdetails auf einem 3D-Objekt möglicherweise nicht sichtbar. Das bedeutet, dass Sie sich auf große Formen und Teile konzentrieren sollten, die zur Silhouette des Objekts beitragen, anstatt auf kleine Details, die möglicherweise nicht sichtbar sind. Verwenden Sie Texturen und Normalen-Maps für feine Details.

LOD-Beispiele

Level-of-Detail (LOD) verwenden

Wenn Objekte in die Ferne bewegen, kann Level of Detail (LOD) sie anpassen oder auf einfachere Netze mit einfacheren Materialien und Shadern umschalten, um die GPU-Leistung zu optimieren.

Weitere Tipps zur LOD-Vorbereitung

  • Entfernen Sie mehr Polygone in flacheren Bereichen und verwenden Sie keine dichten Dreiecksbereiche bei Objekten mit einem niedrigeren LOD.
  • LOD kann auch auf die Komplexität von Shadern angewendet werden. Der Shader und das Material können für 3D-Objekte, die weiter entfernt sind, optimiert werden. Zum Beispiel können Sie die Anzahl der Texturen reduzieren, die ein Objekt verwendet, während es sich weiter von der Kamera entfernt.
  • Es ist oft sinnvoll, die Anzahl der Dreiecke zwischen jedem LOD-Level um 50 % zu reduzieren.
  • Überprüfen Sie, wie das LOD aus verschiedenen Entfernungen zur Kamera aussieht.
  • Saubere Topologie ist entscheidend für Charaktere und Objekte, die deformiert oder animiert werden.
  • Besessen Sie sich nicht mit perfekter Topologie. Der Spieler oder Endbenutzer wird das Drahtgitter eines 3D-Modells nicht sehen, nachdem Sie eine Textur und ein Material angewendet haben.

Wann man LOD nicht verwenden sollte

LOD ist nicht in jeder Situation geeignet. Vermeiden Sie es beispielsweise, es in einer Anwendung zu verwenden, in der sowohl die Kameraperspektive als auch die Objekte statisch sind oder wo das Objekt bereits eine niedrige Polygonanzahl verwendet. LOD bringt einen Speicheraufwand und eine größere Dateigröße mit sich, da die Netzdaten gespeichert werden müssen, damit sie in Echtzeit verwendet werden können.

Occlusion in Unity

Meshes kombinieren und Objekte ausblenden

Sie können mehrere Netze zu einem kombinieren, um die Anzahl der erforderlichen Draw Calls für das Rendering zu reduzieren. Um diese Technik anzuwenden, erstellen Sie ein leeres GameObject in der Hierarchie und machen Sie es zum Elternobjekt der Meshes, die Sie kombinieren möchten, und fügen Sie dann ein Skript hinzu, das die Methode Mesh.CombineMeshes() auf das Eltern-GameObject implementiert.

Verwenden Sie Occlusion Culling

Objekte, die hinter anderen Objekten verborgen sind, können möglicherweise weiterhin gerendert werden und Ressourcen kosten. Verwenden Sie Occlusion Culling, um sie auszuschließen.

Während das Frustum-Culling außerhalb der Kamerasicht automatisch erfolgt, ist das Occlusion Culling ein gebackener Prozess. Markieren Sie einfach Ihre Objekte als Static Occluders oder Static Occludees, und backen Sie dann über das Window > Rendering > Occlusion Culling Dialogfeld. Obwohl es nicht für jede Szene notwendig ist, kann Culling in vielen Fällen die Leistung verbessern. Schauen Sie sich das Working with Occlusion Culling Tutorial für weitere Informationen an.

Modelle in Unity importieren

Modelle importieren

Hier sind einige gute Tipps, die Sie beim Importieren Ihrer Modelle beachten sollten.

  • Animationstyp: Beim Importieren eines FBX-Meshs, das keine Animationsdaten enthält, setzen Sie den Animationstyp im Rig-Tab der Import-Einstellungen auf Keine. Wenn Sie Ihr Mesh in die Hierarchie einfügen, stellt diese Einstellung sicher, dass Unity keine ungenutzte Animator-Komponente generiert.
  • Rigs und BlendShapes deaktivieren: Wenn Ihr Mesh keine Skelett- oder Blendshape-Animation benötigt, deaktivieren Sie diese Optionen, wo immer möglich.
  • Normale und Tangenten deaktivieren: Wenn Sie sich absolut sicher sind, dass das Mesh-Material keine Normalen oder Tangenten benötigt, deaktivieren Sie diese Optionen für zusätzliche Einsparungen.
  • Importeinstellungen: Wenn Ihr Modell zur Laufzeit nicht verändert wird, deaktivieren Sie die Option "Read/Write Enabled" im Modell-Tab der Import-Einstellungen, um zu verhindern, dass eine Kopie im Speicher erstellt wird.
  • Statisches/Dynamisches Batching: Statisches Batching ist eine gängige Optimierungstechnik, die die Anzahl der Draw Calls reduziert. Es ist ideal für Objekte, die aus einer großen Anzahl von Vertices bestehen und sich während des Renderns nicht bewegen, drehen oder skalieren. Überprüfen Sie 'Statisch' im Inspektor, der den Mesh-Renderer Ihres Zielmodells enthält.
Vergleich der Texturkompression

Texturgrößen und Farbraum

Texturen können unterschiedliche Größen haben. Die Reduzierung der Größe von Texturen, die weniger Details erfordern, hilft, die Bandbreite zu reduzieren. Zum Beispiel kann eine diffuse Textur auf 1024 x 1024 eingestellt werden, und die zugehörige Rauheits-/Metallkarte kann auf 512 x 512 eingestellt werden. Geben Sie Ihr Bestes, um die Texturgröße selektiv zu reduzieren, und überprüfen Sie immer, ob visuelle Elemente danach beeinträchtigt wurden.

Die meisten Texturierungssoftware arbeitet mit und exportiert Texturen im sRGB-Farbraum.

Wir empfehlen, dass Sie diffuse Texturen im sRGB-Farbraum verwenden. Texturen, die nicht als Farbe verarbeitet werden, dürfen nicht im sRGB-Farbraum sein. Beispiele für diese Texturen sind metallische, Rauheits- und Normalmaps, da Karten als Daten und nicht als Farbe verwendet werden. Die Verwendung von sRGB in diesen Karten führt zu einer falschen Darstellung des Materials.

Hinweis: Stellen Sie sicher, dass die sRGB (Farbtextur)-Einstellung im Inspektorfenster keine Häkchen neben Rauheit, spekulär, Normalmaps oder ähnlichen Elementen hat.

Details in der Textur auf Dachschindeln

Details in die Textur backen

Elemente wie Ambient Occlusion und kleine spekuläre Highlights können eingebaked und dann zur diffusen Textur hinzugefügt werden. Dieser Ansatz bedeutet, dass Sie nicht zu sehr auf rechenintensive Shader und Unity-Funktionen angewiesen sind, um spekuläre Highlights und Ambient Occlusion zu erhalten.

Demonstration einer getönten Graustuftextur

Getönte Graustufen-Texturen

Wann immer möglich, verwenden Sie Graustufen-Texturen, die Farbtonung im Shader ermöglichen. Dies spart Texturspeicher auf Kosten der Erstellung eines benutzerdefinierten Shaders zur Durchführung der Tönung. Sei wählerisch mit dieser Technik, da nicht alle Objekte gut mit dieser Methode aussehen. Es ist einfacher, dies auf ein Objekt anzuwenden, das eine einheitliche Farbe hat.

Texturfilterung bilinear und trilinear Vergleich

Texturfilterung

Texturfilterung verbessert oft die Texturqualität in einer Szene, kann jedoch auch die Leistung beeinträchtigen, da eine bessere Texturqualität oft mehr Verarbeitung erfordert. Texturfilterung kann manchmal bis zu der Hälfte des GPU-Energieverbrauchs ausmachen. Die Wahl einfacherer und geeigneterer Texturfilter kann helfen, den Energiebedarf einer Anwendung zu reduzieren.

  • Nächste/Punktfilterung: Dies ist die einfachste und am wenigsten rechenintensive Form der Texturfilterung, obwohl diese Filterung bei Nahansicht Texturen blockartig erscheinen lassen kann.
  • Bilineare Filterung: Die bilineare Filterung sampelt und mittelt benachbarte Texel, um Pixel in einer Textur zu färben. Im Gegensatz zur nächsten Filterung führt die bilineare Filterung zu weniger blockartigen Pixeln, da die Pixel einen sanften Verlauf haben. Ein Nebeneffekt der bilinearen Filterung ist, dass Texturen unscharf erscheinen, wenn sie aus der Nähe betrachtet werden.
Sprite-Atlas im Unity-Editor

Texturgrößen und Farbraum

Der größte Teil deines Speichers wird wahrscheinlich für Texturen verwendet, daher sind die Importeinstellungen hier entscheidend. Versuche im Allgemeinen, diese Richtlinien beim Importieren deiner Assets zu befolgen.

  • Maximale Größe verringern: Verwende die minimalen Einstellungen, die visuell akzeptable Ergebnisse liefern. Dies ist nicht destruktiv und kann schnell deinen Texturspeicher reduzieren.
  • Verwende Potenzen von zwei (POT): Unity benötigt POT-Texturgrößen für mobile Texturkompressionsformate (PVRCT oder ETC).
  • Atlasieren Sie Ihre Texturen: Das Platzieren mehrerer Texturen in einer einzigen Textur kann die Draw Calls reduzieren und das Rendering beschleunigen. Verwenden Sie das Unity Sprite Atlas oder das Drittanbieter-Tool TexturePacker, um Ihre Texturen zu atlasieren.
  • Deaktivieren Sie die Option "Read/Write Enabled": Wenn aktiviert, erstellt diese Option eine Kopie im CPU- und GPU-adressierbaren Speicher, wodurch der Speicherbedarf der Textur verdoppelt wird. In den meisten Fällen sollten Sie dies deaktiviert lassen. Wenn Sie Texturen zur Laufzeit generieren, erzwingen Sie dies über Texture2D. Wenden Sie an, indem Sie makeNoLongerReadable auf true setzen.
  • Deaktivieren Sie unnötige Mipmaps: Mipmaps sind für Texturen, die auf dem Bildschirm eine konstante Größe beibehalten, wie 2D-Sprites und UI-Grafiken, nicht erforderlich. Lassen Sie Mipmaps für 3D-Modelle aktiviert, die sich in unterschiedlicher Entfernung zur Kamera befinden.
  • Verwenden Sie bilineare Filterung: Dies hilft, ein Gleichgewicht zwischen Leistung und visueller Qualität zu finden.
  • Verwenden Sie trilineare Filterung selektiv: Es erfordert mehr Speicherbandbreite als bilineare Filterung.
  • Verwenden Sie bilineare und 2x anisotrope Filterung: Wählen Sie diese anstelle von trilinearer und 1x anisotroper Filterung, um sowohl das Aussehen als auch die Leistung zu verbessern.
  • Halten Sie das anisotrope Niveau niedrig: Verwenden Sie nur ein Niveau höher als 2 für kritische Spielressourcen.
Vergleich komprimierter Texturen

Texturen komprimieren

Verwenden Sie Adaptive Scalable Texture Compression (ATSC) sowohl für iOS als auch für Android. Die überwiegende Mehrheit der in Entwicklung befindlichen Spiele zielt auf Min-Spec-Geräte ab, die ATSC-Kompression unterstützen. Die einzigen Ausnahmen sind:

  • iOS-Spiele, die auf A7-Geräte oder niedriger abzielen (z. B. iPhone 5, 5S usw.): Verwenden Sie PVRTC
  • Android-Spiele, die auf Geräte vor 2016 abzielen: Verwenden Sie Ericsson Texture Compression (ETC2)
Texturkanäle

Texturkanäle verwenden, um mehrere Texturen in einer zu packen

Das Packen von Texturkanälen hilft, den Texturspeicher zu sparen, da Sie drei Karten in einer Textur unterbringen können. Das bedeutet weniger Textursampler. Dieser Ansatz wird häufig verwendet, um Rauheit, Glätte und/oder Metallizität in einer Textur zu packen. Es kann auch auf jede Texturmaske angewendet werden. Zum Beispiel können Sie auch die Alphamaske speichern. Bilder mit Transparenzen können einen größeren Speicherbedarf haben, da sie ein 32-Bit-Format erfordern, aber durch die Verwendung des freien Kanals zur Speicherung der Alphamaske können Sie die diffuse Textur bei 16-Bit halten und die Dateigröße effektiv halbieren.

Verwenden Sie den grünen Kanal, um die wichtigste Maske zu speichern. Der grüne Kanal hat normalerweise mehr Bits, da unsere Augen empfindlicher auf Grün und weniger empfindlich auf Blau reagieren.

Manuelle UV-Textur in Probuilder

UV-Unwrapping

Eine UV-Karte projiziert 2D-Texturen auf die Oberfläche eines 3D-Modells. UV-Unwrapping ist der Prozess der Erstellung einer UV-Karte.

  • Es ist bewährte Praxis, UV-Inseln, die einzelnen Einheiten einer entpackten Textur, so gerade wie möglich zu halten, um das Packen von UV-Inseln zu erleichtern und den Platzverbrauch zu reduzieren. Ein gerader UV hilft auch, den Treppeneffekt auf Texturen zu verhindern.
  • Auf mobilen Plattformen ist der Texturraum begrenzt. Daher ist die Texturgröße normalerweise kleiner als auf einer Konsole oder einem PC. Gutes UV-Packing stellt sicher, dass Sie die höchste Auflösung aus Ihren Texturen herausholen.
  • Erwägen Sie, eine leicht verzerrte UV zu haben, indem Sie die UV gerade halten, um qualitativ bessere Texturen zu erhalten.
  • In bestimmten Fällen müssen Sie die Kanten und Schattierungen übertreiben und hervorheben, um die Formlesbarkeit zu verbessern. Da mobile Plattformen im Allgemeinen kleinere Texturen verwenden, kann es schwierig sein, alle benötigten Details in diesem kleinen Raum festzuhalten.
  • Für mobile Anwendungen verwenden Sie weniger Texturen und backen Sie alle zusätzlichen Details in eine Textur. Dies ist wichtig, da einige Details besser auf die diffuse Textur selbst gebacken werden, um sicherzustellen, dass diese Details auf den kleinen mobilen Bildschirmen sichtbar sind.