Jump to content
Unity Insider Forum

Compression


Alessio

Recommended Posts

Hey, wollte mal fragen ob die Einstellung Compression und Use Crunch Compression bei einer Textur irgendwelche Nachteile außer schlechtere Qualität macht, damit meine ich ob es z.B die Performance beeinträchtigt. Das gleiche frage ich mich bei den Model Einstellung Mesh Compression.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Peanut Ja, wir könnten eigentlich schon beim Eingang der Foruen gleich einen Link zum Unity-Mutterforum setzen. Dann bräuchten wir hier nichts mehr schreiben. Wer will schon ein deutsches Forum haben. ;) 

 

@Alessio

Jeder Compressor verringert dir die Datenmenge, die im Spiel geladen und auch der Grafikkarte übergeben werden muss. Das ist der Vorteil und der Grund dabei.
Eine Komprimierte Grafik zu nutzen, macht bei der Performance eigentlich nichts aus. Unity nutzt eh komprimierte Grafiken und Sounds intern.
Bei der Meshkompression ist das so ähnlich. Da werden eigentlich nur die Dinge entfernt bzw. komprimieret, die nicht weiter nötig sind.
Da ist z.B. der Punkt eine Meshes, der ganz genau angegeben werden kann, aber nicht muss.

Fazit: Du wirst keine Performance-Einbußen bekommen. Du wirst aber bei den Grafiken unschöne Kompressionsartefakte oder Farbverwaschungen sehen.
 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Prefabs habe an sich keine nennenswerte Größe. Ein Prefab ist eigentlich nur eine Blaupause, die dem Game sagt aus was ein Objekt zusammengesetzt ist.
Das Prefab verweist dabei auf deine Meshes, die du eingeladen hast, deine Texturen, Sounds und Scripts.
Wenn du also ein Prefab gebaut hast, welches aus einem Stein mit einer Textur besteht und ein weiteres Prefab gebaut hast, welches auch den Stein mit gleicher Textur drin hat aber eben 2 Mal, dann hast du effektiv nur ein Steinmesh und eine Textur gebraucht. Diese 2 Prefabs haben zwar jetzt zusammen 3 Steine und wenn du beide Prefabs in der Szene hast, dann siehst du auch die 3 Steine. Aber faktisch ist dein Projekt dadurch nicht größer geworden. Du nutzt ja immer das gleiche Mesh und die gleiche Textur.
Verstehst du das?

Unity kann alle möglichen Grafik, Sound und 3D Formate importieren. Es wandelt selbstständig schon in komprimierte Formate um. Eine PSD Grafik (Photoshop) kann durchaus 50MB groß sein. Unity wandelt die intern in ein komprimiertes Format um und dann hat die Grafik im Spiel nur noch ein Bruchteil der Originalgröße. Ganz automatisch.
Du kannst jetzt selber noch einige Parameter verändern. Du kannst sagen, dass du eine 24Bit Grafik ohne Kompressor und guter Auflösung willst, oder aber aber die stärkste Kompression die's gibt willst. Du kannst auch sagen, dass die Grafik, egal in welcher Dimension sie importiert wurde, maximal nur 1024px groß sein soll. Das macht Unity auch.
Bedenke aber: Auch die beste Qualitätseinstellung erzeugt ein komprimiertes Bild. Sie ist "verlustfrei" komprimiert und deswegen nicht so klein im Speicher wie es maximal möglich wäre. Trotzdem werden aus den 50MB der PSD Datei nur wenige MB im Spiel.

Beim Sound ist das genauso. Du kannst einen Song als WAV Datei importieren. Da würde ein 3 Minuten Lied gerne mal 25MB verbrauchen. Unity macht da eine komprimierte Datei draus, die weniger als 10% der Ursprungsgröße hat.

Die Frage ist, was du erreichen willst. Willst du Platz auf der Platte sparen, dann erzeuge wenige Grafiken und nur kurze Sounds, die du bei deinen Objekten mehrfach nutzt.
Hast du zu wenig RAM ( eigentlich nur noch bei ganz alten Smartphones oder Tabletts) dann kannst du Sounds auch quasi Streamen.
Geht es dir darum schwache Grafikkarten zu nutzen, die wenig Ram haben, dann musst du zusätzlich noch die Texturgrößen verringern und weniger Objekte gleichzeitig anzeigen lassen. Objekte, die viele Poygone haben, brauchen viel Leistung bei der Grafikerzeugung, weil da viel berechnet werden muss. Ist die Grafikkarte lahm und alt, dann musst du mit Objekten arbeiten, wie mit wenigen Poygonen auskommen. Und natürlich drauf achten, dass nicht zu viele Objekte gleichzeitig zu sehen sind.
Ein Objekt was viele Poygone hat, braucht natürlich auch mehr Speicherplatz als eins was wenig Polys hat. Aber das sind ja nur wenige Bytes. Plattenplatz kannst du dadurch nicht so richtig sparen. Da geht es eher um Performance.

Grafiken Videos und Sounds sind die Dinge, die viel Platz auf der Platte und auch im Ram brauchen. Bei diesen Dingen kann man richtig was einsparen. Aber wie ich ja geschrieben habe; Unity hilft dir dabei eh schon.
Meshes, deine Scripte, die Materialien und was weiß ich noch alles bestehen nur aus wenigen kB. Da sparst du nix im bezug zur Ram oder Festplattengröße.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...