Asset-Dateigrößen

  • Hallo,


    das ist jetzt nicht als Beschwerde oder ähnliches gemeint, es wundert mich einfach nur: Und zwar frage ich mich, was CSL mit Assets anstellt die man importiert, das die Dateigrößen jedesmal so sehr explodieren. So ein Regionalzug mit 4 verschiedenen Fahhrzeugen etwa: Die Modelle und Texturen kommen vor dem Import mit Müh und Not auf ein paar hundert Kilobyte, das fertige Asset im Workshop hat jedoch gerne mal 5 oder 10 MB.


    Jetzt kommt da natürlich noch ein Bisschen was an Scripten dazu wo drin steht wie schnell das Teil fährt, wieviele Leute reingehen, wo die Türen sind und so weiter, aber dass dadurch die Dateigröße mal eben verzehnfacht wird kann ich mir kaum vorstellen. Da passiert wohl noch irgendwas anderes im Hintergrund.


    Weiß zufällig jemand, was? Und ob es da Tricks gibt das kleiner zu halten, außer weniger verschiedene Fahrzeuge im selben Zug zu verwenden?


    VG, Mike

  • Nun, ich verwende PNGs für die Texturen, kleiner geht es wirklich nicht mehr. Meine Verutung ist ja, dass CSL aus den einzelnen Maps (DISCA et al) eine einzelne Datei mit mehreren Kanälen macht und dabei ein eher sperriges Format verwendet, gut möglich dass das in der Tat TGA ist. Käme ungefähr hin von der Größe. Aber ich kann da eben auch nur spekulieren.

  • Aber spielt das Ausgangsformat denn eine Rolle wenn CSL ohnehin konvertiert?

  • just use PNG, OK, werde ich tun. Auch wenn die Kompression in dem Fall wohl so ne Art Erdnussbutterdiät ist :D

  • Dass der verlinkte Thread von 2015 ist und wir heute noch drüber reden, sagt ja auch schon was aus...

    • Offizieller Beitrag

    Vielleicht solltest du ein anderes Fahrzeug als Template verwenden, Ich hatte das auch mal mit meinem BVG Bus glaube ich.


    https://community.simtropolis.…ile-size-in-custom-asset/

    Ja, da gibt es einen Bug mit dem (Vanilla-?) Bus-Template, aber auch nur mit diesem soweit ich weiß. Die oben erwähnten 5 bis 10 MB sind für einen Zug mit verschiedenen Waggons doch völlig in Ordnung, oder?


    Wer toppt diese Dateigröße? https://steamcommunity.com/sha…iledetails/?id=1322563479 :search::D

  • Hallo zusammen, ich versuche mal etwas Licht ins Dunkle der Gebäude/Fahrzeug/Requisiten/Bürger Assets zu bringen.


    Man fragt sich warum die fertigen Assets oft mehrere Megabyte, also mehr als 10 MByte groß sein können.


    Es gibt zwei Faktoren.


    1. Das 3D-Objekt selber, umso mehr Dreiecke ein Objekt hat umso größer wird auch die Datei.


    2. Die Texturen, für Gebäude-Assets, wohl auch für Fahrzeuge und Bürger, werden maximal 6 verschiedene Texturen verwendet, davon wird eine immer benötigt und das ist die Haupttextur die halt das Gebäude oder besser gesagt, das Objekt Farbenprächtig wieder gibt.


    Das Spiel erzeugt aus diese 6 verschiedene Texturen Spiel-Intern immer 3 Texturen, ich meine mal gelesen zu haben das Cities-Skylines Texturen mit einer 16Bit Farbtiefe unterstützt da es sie Intern entsprechend von 8 Bit auf 16 Bit umrechnet, aber bin mir nicht mehr 100% sicher.


    Das Spiel hat Intern folgende Texturen, die Haupttextur, womit die Farben des 3D-Objekts dargestellt wird, endet immer mit dem "_d" am ende des Dateinamens, dann erstellt es auf jeden Fall noch die Texturen XYS und ACI.


    Wie oder aus welchen Texturen setzen sich XYS und ACI zusammen, bei dem Straßen-Editor gibt es statt ACI die APR.


    Fange mit den bereits bekannten Gebäude/Fahrzeug-Texturen an.


    A = Alpha Map ,also die Textur mit dem Dateinamens Anhang "_a"

    C = Color-Map dies ist eine Graustufen Map die dem Spiel sagt, wo die Farbvariationen greifen sollen, sie hat den Dateinamens Anhang "_c"

    I = Illuminations-Map, also die Graustufen Map wo genau festgelegt ist, welches Pixel wie zu Leuchten hat, der Dateinamens Anhang lautet "_i"


    XY = Dies ist die Normal-Map und hat als Dateinamens Anhang "_n"

    S = Dies ist auch wieder eine Graustufen-Map hier mit wird festgelegt welches Pixel wie Stark Spiegeln soll und hat als Dateinamens Anhang "_s"


    Die Haupttextur eines Objektes, also die Textur die für das Aussehen des 3D-Objekts verantwortlich ist, nennt man Diffius-Map, der Dateinamens Anhang lautet "_d"


    Kommen wir zur APR.


    A ist wie weiter oben Identisch und steht für die Alpha-Map, also ist der Dateinamens Anhang wieder "_a"

    P = ist die Pavement-Map, auch dies ist nur eine Graustufen-Map und hier mit wird festgelegt welches Pixel als Pavement erscheinen soll, also als Bürgersteig/Gehweg-Textur, dabei handelt es sich um eine Spiel-Interne Textur die abhängig vom Karten-Thema ist, man kann diese über den Themen-Editor ändern, der Dateinamens Anhang lautet "_p"


    R = Dies ist die Road-Map, mit dieser Graustufen-Map wird festgelegt welches Pixel als Fahrbahn-Oberfläche erscheinen soll, man kann im Straßen-Editor auch die Farbe der Fahrbahnoberfläche festlegen, Standardmäßig steht die auf ein Neutrales Grau, also R=128 G=128 B=128, dies wird der eigentlichen Straßenoberflächen Textur hinzugemischt, der Dateinamens Anhang hier lautet "_r"


    Die eigentliche Textur mit den Fahrbahnmarkierungen und Strukturen hat als Textur-Dateinamens Anhang das "_d" wieder, also D = Diffius.


    Für die Straßen gibt es auch eine Spiegelungs-Map, die hat auch wie bei den anderen Objekten als Dateinamens Anhang "_s".


    Es gibt bei den Maps ACI und APR noch eine Besonderheit, die meisten Texturen sind Invertiert, also Schwarz ist Weiß und Weiß ist Schwarz, sollte man solche Texturen aus dem Spiel Exportieren und dann später wieder ins Spiel importieren wollen, darf man sich nicht wundern wenn das Objekt nicht wie erwartet aussehen sollte.


    Ausgenommen davon, sind nach meinen aktuellen Wissens-Stand die R von der APR und die XY, die sollte man so übernehmen wie man sie auch dann Exportiert hat.


    Aber bleibt immer noch die Frage, was macht ein Asset überhaupt so Groß vom Speicherplatz.


    Jedes Objekt was man ins Spiel bringt, existiert quasi 2 mal, einmal so wie man es erstellt hat und einmal als eine Reduzierte Version, dem sogenannten LOD, Level of Detail, ich nenne es auch gerne Level of Distance zu Deutsch der Level auf Distanz.


    Was ist das genau, nun wenn man Objekte im Spiel aus der nähe sieht, dann erscheinen sie so wie man sie für das Spiel erstellt hat, sind die Objekte aber weiter weg von der Virtuellen Kamera, dann werden die ab einer bestimmten Entfernung als LOD-Objekt dargestellt, LOD-Objekte haben so um den Faktor 4-12 weniger Details, sieht man aus der nähe noch jede einzelne Treppenstufe, so ist sie aus der Entfernung nur noch als Viereckiger Würfel oder Rechteck/Quadrat erkennbar, noch ein Beispiel in Zahlen, hat ein Gebäude z.B. 2648 Dreiecke, so besteht das gleiche Gebäude als LOD-Objekt nur noch 220 Dreiecken.


    Auch diese LOD-Objekt belegt Speicherplatz.


    Was aber auch noch dazu kommt, das es für Texturen auch sogeannte LOD-Texturen gibt, in den meisten Fällen berechnet das Spiel diese LOD-Objekte und LOD-Texturen automatisch, aber so ein LOD-Objekt mit samt seiner LOD-Textur kann später im Spiel doch sehr Auffällig und Unschön zu sehen sein, daher kann man diese Objekte auch Manuell erstellen.


    LOD-Objekte und Texturen haben einen weiteren Dateinamens Anhang, "_lod" bei Objekten und "_lod_x" bei Texturen, wobei das X hier dann wieder für a, c, d, i, n, p, r, s steht.


    Aber die Frage ist immer noch, was macht ein Asset so groß.


    Man kann ein Objekt aus 1000 Dreiecken erstellen aber auch aus 10000 und mehr Dreiecken, genau so kann man ja ein passendes LOD-Objekt erstellen, es gibt gewiss Assets im Workshop wo die Ersteller der Meinung sind, ich will das mein Objekt auch vom Mond aus noch gesehen wird mit jeden noch so kleinsten Detail.


    Genau so ist es mit den Texturen, muss es eine 4K-Textur sein, also 4096 x 4096, es reicht auch eine 1K Textur mit 1024 x 1024 oder 2048 x 512 oder 2048 x 256, und was das LOD angeht, hier ruhig mindestens halb so groß aber besser wäre 4 mal kleiner als die Original Textur, statt 2048 x 1024, reicht für ein LOD schon 512 x 256 aus.


    Umso weniger Speicher ein Objekt benötigt umso weniger Leistung wird vom System abverlangt und umso flüssiger läuft das Spiel und die Simulation ab.


    So hoffe euch nun damit etwas mehr Licht ins Dunkle gebracht zu haben.

    MainboardMSI X99A XPower AC
    CPUIntel Core I7-5930K 3,70 GHz (6/12)
    ArbeitsspeicherG-Skill F4-2400C15Q2-64GRK (nur 32 GByte in Verwendung)
    GrafikkarteMSI GForce GTX-970 Gaming 4G
    BetriebssystemWindows 10 Pro
    ProgrammeBlender 3D 4.0, GIMP 2.10, Word & Excel
    SpieleCities-Skylines Deluxe-Edition, Cities Skylines 2 Ultimate-Edition, Planet Zoo, Planet Coaster, Per Aspera, Surviving Mars, Infraspace, Transport Fever 2, Portal 1 & 2

    Einmal editiert, zuletzt von Samson1971 ()

    • Offizieller Beitrag

    Interessant zu wissen wäre, auf welche Farbtiefe C:S die Texturen komprimiert. Dann könnte man gleich bei der Erstellung mit dieser Farbtiefe arbeiten und dem Texturmatsch vorbeugen.

    Ronyx69 und Cozonaq haben eine sehr informative Seite zum Thema Modding für Cities: Skylines erstellt, auf der auch meine Frage beantwortet wird:

    Make sure the texture is 8 bit, because a 16 bit image can't be imported.

    Natürlich gibt es dort noch viel mehr interessante Sachen in relativ kompakter Form und die Seite wird in Zukunft auch noch weiter ausgebaut. :ms_thumbs_up: