Performancediskussion (Polys & Co)

    • Offizieller Beitrag
    Zitat

    Niemand behauptet, viele Polys sind leistungsfoerdernd, aber was Trainz in die Knie zwingt sind zuvorderst nicht die Polys. Anzahl der Materials und Texturen sind der entscheidende Faktor...


    Habe ich ja erwähnt.
    Es sind mehrere Faktoren.
    Ich bin trotzdem dagegen, Polys unnötig zu verschwenden, indem man keine überflüssigen Polys und ähnliches löscht oder unnötig viele Segmente nutzt.
    Aber wie du gesagt hast, die Polygone sind nur einer von vielen Faktoren, spielen aber trotzdem eine Rolle

  • ...eine verschwindend geringe, zumindest ab 2009...

    One of the painful signs of years of dumbed-down education is how many people are unable to make a coherent argument. They can vent their emotions, question other people’s motives, make bold assertions, repeat slogans—anything except reason.“ (Thomas Sowell)

    • Offizieller Beitrag
    Zitat

    ...eine verschwindend geringe, zumindest ab 2009...


    Kommt drauf an, in welchen Dimensionen man sich befindet.
    Die Polygone spielen nicht mehr die Rolle, die sie in früheren Versionen spielten,
    eine Rolle spielen sie immernoch.
    Und Polygonverschwendung aufgrund Faulheit/Lernresistenz und Ähnlichem finde ich nicht in Ordnung...

    • Offizieller Beitrag

    "Verschwindend gering"? Nein. Also dem möchte ich widersprechen, bevor hier vielleicht noch jemand denkt, man könne ab TS2009 mit Polys prassen.


    Fakt ist doch, daß das Texture-Handling seit TS2009 zu Gunsten größerer Texturen verbessert wurde. Texturen müssen aber für jede Fläche(Poly) berechnet werden - logisch, daß diese Berechnung bei mehr Polys auch länger dauert.


    Richtig ist natürlich auch, daß die Anzahl der Materialien und Größe der Texturen eine große Rolle spielen. Deswegen sollte man auch immer bestrebt sein, daß man für ein Objekt auch nur eine Textur Map verwendet. Erst wenn das wirklich nicht machbar ist sollte man weitere Textur Maps verwenden.


    Unmengen von kleinen Farb TGAs, die über die Polybombe gekacheln werden, bremsen Trainz aus. Es ist ein Irrglaube zu denken, daß von einem Objekt in Trainz mehr Konturen zu sehen sind, wenn man jeden Furz ausformt und dann doch nur mit der Textur drüber kachelt. Konturen bekommt man besser hin, indem man sich mit Renderern und Grafikbearbeitung auseinandersetzt.


    Aber das kann ja jeder selber testen/sehen, indem er sich mal mit jeweiligen Assets die Platte vollstellt...

  • Zitat

    ChWerwick schrieb:
    "Verschwindend gering"? Nein. Also dem möchte ich widersprechen, bevor hier vielleicht noch jemand denkt, man könne ab TS2009 mit Polys prassen.


    Wer redet denn von Prassen? Man sollte nur nicht uebertreiben. Selbstverstaendlich ist, dass ein CC seine Modelle sauber erstellt. Sprich, unter Anderem keine Polys verbaut, die dann eh nicht zu sehen sind, etc., etc.


    Jeder hat da natuerlich seine eigene Philosophie, es kommt nicht zuletzt darauf an fuer welche Bereiche man ein Asset baut...


    Zitat

    Fakt ist doch, daß das Texture-Handling seit TS2009 zu Gunsten größerer Texturen verbessert wurde. Texturen müssen aber für jede Fläche(Poly) berechnet werden - logisch, daß diese Berechnung bei mehr Polys auch länger dauert.


    Das aendert nichts daran, wo die wirklichen Flaschenhaelse sitzen. Fuer moderne Grafikkarten ist das projizieren von Texturen auf Objekte nicht mehr das Ding. Wesentlich ist doch die Menge der Daten, die erst mal zur Grafikkarte hin transportiert werden und ggf. dort im Speicher gehalten werden muessen! Rechne Dir doch mal aus, wie viele 2045x2048er Texturen in 1Gb Grafikspeicher passen...


    Mick!

    One of the painful signs of years of dumbed-down education is how many people are unable to make a coherent argument. They can vent their emotions, question other people’s motives, make bold assertions, repeat slogans—anything except reason.“ (Thomas Sowell)

    • Offizieller Beitrag

    Eine 2045x2048er Textur würde sofort angemeckert werden! :clown:


    Mick, ich schrieb zuvor genauso wie du, daß große Texturen eine große Rolle bei der Performance spielen.
    Dennoch bleibe ich dabei: zu viele Polys sind genauso ein Grund für schlechte Performance.
    Genau deswegen gibt es ja auch Techniken wie LOD.


    Und nochmal: teste solche Objekte indem du dir das Baseboard damit vollstellst - ich tat es und zog meine Schlüsse daraus: die Bedeutung der Anzahl von Polys ist nicht verschwindend gering! Und nochmal extra für dich, lieber Mick: damit habe ich nicht gesagt, daß die Texturen keine Rolle spielen :winking_face:


    Im Übrigen kann man ja hier auch was zum Test und zur Bedeutung von Polygonen und Materialien auf die Performance nachlesen: http://online.ts2009.com/media…me_Performance_Statistics

  • Hi,


    ...das mit den Texturgrößen habe ich nicht erwähnt, da es auf Seite 2 hier um Polygone ging.
    :shock:
    Selbstverständlich spielt die Größe und Menge der verwendeten Texturen für ein Objekt eine viel wichtigere Rolle, wenn es um die Performance im Spiel geht!
    Trotz alledem werde ich für meinen Teil weiterhin beim Bauen auf die Polygone ein Auge werfen.


    Und, den Vorwurf der "Polygon-Phobie" weise ich mal deutlich von mir!


    Mögen die Weisen ihre Polygongräber bauen...
    :angel:

    Jörg

  • Erstmal vielen Dank für die Ausführungen:clap:


    Im konkreten Fall hätte ich nun eine Frage zur Textur(und nutze einfach diesen Thread dafür, hoffe ist okay):


    Ich repainte gerade ein Schienenfahrzeug. Jedes Teil hat die gleiche Texturmap, also body, door etc. Ist 1024x1024 gross. Für die Türen z.b. bräuchte ich aber nicht soviel grafische Details. Macht es hierfür performancetechnisch Sinn, die Textur zu halbieren?


    Oder anders gefragt: muss die Textur doppelt geladen werden, wenn sie eine andere Grösse hat aber ansonsten gleich ist? Eigentlich muss sie ja eh doppelt geladen werden, da sie sich in einem anderen Ordner befindet, oder?
    Dann wäre die Frage ja beantwortet:angel:

  • wenn du mehrmals exakt die gleiche texturvorlage nimmst, reicht es doch eigentlich wenn du sie nur einmal nimmst und dann bei jedem teil die jeweiligen texturen von dort aus laden lässt. nehme an du hast türen und lichter und dach usw. alles auf eienr "folie"


    Weiß jetzt nicht ob trainz das auch so macht, repainte erst seit sonntag^^ aber ich glaube das ist dann performancemäßiger umgesetzt

  • Zitat

    nehme an du hast türen und lichter und dach usw. alles auf eienr "folie"


    Jo, genau so ist das.

    Zitat

    in Trainz wird die Textur trotzdem mehrfach geladen (pro Material einmal).


    Super, dann hat sich meine Vermutung ja bestätigt:sinister: Vielen Dank Euch, dann kann ich ja mal loslegen mit Optimieren ähm Lackieren^^

  • Damit ist aber noch lange nicht alles gesagt.
    (Entschuldigung, wenn ich mich hier kurz einmische.)
    # Du kannst die Türobjekte auch im gleichen Verzeichnis unterbringen, wie die "Body" auch.
    # Wenn Du eine Textur in mehreren Materialien auf einem Objekt verwendest, ist es sinnvoll, immer die selbige Map-ID zu vergeben (per Hand zu korrigieren).


    Es gibt noch viel mehr Punkte, mit denen man ein Objekt optimieren kann.

  • Danke FSP,

    Zitat

    ist es sinnvoll, immer die selbige Map-ID zu vergeben (per Hand zu korrigieren)


    Map-IDs gibts doch nur beim Texturieren, oder? Ich bin ja nicht im Besitz des gmax-Files. Oder ist damit schlicht der Dateiname gemeint?

  • Zitat

    marcee schrieb:
    Danke FSP,


    Map-IDs gibts doch nur beim Texturieren, oder? Ich bin ja nicht im Besitz des gmax-Files. Oder ist damit schlicht der Dateiname gemeint?


    a) ja
    und damit:
    b) nein

  • Zitat

    Basti schrieb:
    Als Repainter kann man an der Anzahl der im Mesh genutzten Materials meines Wissens nach nix ändern...


    Nein, kann man nicht. Aber das war nicht die Ausgangsfrage von dem Thread (s.a. den Titel "Performancediskussion (Polys & Co").