Das Buch mit Sieben Siegeln, die Nodes im Straßen-Editor

  • Das Buch mit Sieben Siegeln

    Die Node im Straßen-Editor


    !!! Achtung !!!

    Es wird in kürze eine komplett überarbeitete Version erscheinen

    Grund: Der zusammen Hang zwischen den Meshes (3D-Objekte) Segmente und Nodes.


    Ja Ihr lieben Leute, mal wieder ein neues Buch aus meiner reihe "Das Buch mit Sieben Siegeln", mit dem Update/DLC Green-Cities gibt es nun einen neuen Editor im Spiel, den Straßen-Editor, dieser ist sehr umfangreich und komplex, eine komplett neue Straße zu erstellen mit allem was dazu gehört ist nicht gerade leicht.


    Was wird mindestens gebraucht um eine komplett neue Straße zu erstellen?


    Es werden 2 3D-Objekte benötigt, eins für das Segment (die eigentliche Straße) und ein 3D-Objekt für die sogenannte Node (Knoten / Kreuzung), dazu kommen noch diverse Texturen für die Straße und auch für die Kreuzung.


    Aber möchte man bei einer Straße auch die Haltebuchten für die Busse haben, so muss man zusätzlich 3 weitere 3D-Objekte erstellen, also braucht man für eine Straße quasi schon 4 verschiedene 3D-Objekte und eins für die Kreuzung, also insgesamt 5 verschiedene 3D-Objekte.


    Was aber auch geht, bestehende Straßen aus dem Spiel zu ändern, z.B. andere Bäume oder eine andere Geschwindigkeit für diese neue Straße, das kann man jederzeit ohne großen Aufwand anpassen und Speichern.


    In diesem Buch wird es aber erst mal um die Thematik der Nodes gehen, also was man bei so einer Kreuzung beachten muss.


    Werde auch später ein Buch schreiben in der es um die Erstellung einer kompletten Straße geht in dem ich auch versuchen werde auf alle Parameter und Einstellungen einzugehen, aber leider sind viele dieser Parameter und Einstellungen noch nicht ganz so schlüssig wie es eigentlich sein sollte.


    Ja Ihr lieben Leute, mal wieder ein neues Buch aus meiner reihe "Das Buch mit Sieben Siegeln", es erklärt zwar noch nicht alle Geheimnisse des "Straßen-Editors" aber die eine oder andere Problematik vor der man stehen kann und dann nicht mehr weiter weißt.


    Idee stammt von dem Moderator Gun155, er wie auch andere bekommen das nicht auf die reihe wie das Ganze mit den Nodes funktioniert, ja das kann auch verwirrend sein, hatte da auch meine Probleme.


    Es gibt eine erste Frage, was unterscheidet ein Node von einem Segment oder umgekehrt? Das Ganze ist schnell erklärt.


    Segmente, das ist die eigentliche Straße selber, denke das haben die meisten auch alle schon verstanden, aber warum benutzt man ein Segment auch als Node?


    Was ist eine Node überhaupt? Eine Node ist ein Verbindungsknoten, dieser Knoten verbindet die einzelnen Segmente miteinander.


    Warum wird für eine Node das gleiche 3D-Objekt verwendet was man für ein Segment benutzt? Dazu komme ich nun.


    Aller Anfang ist schwer und oder verwirrend.

    Bild 1


    Hier sind zwei Test-Objekte zur Visuellen Darstellung, sie symbolisieren 2 Straßen, man sieht links eine Orangene und rechts eine Weiße Linie, diese Unterteilung eines Segments/Nodes ist wichtig, ohne diese Unterteilung durch die Z-Achse, kann die Node die Straßen nicht korrekt miteinander verbinden, die Folge ist das es zu Darstellungsfehlern kommt.


    Was aber auch sehr Wichtig ist, ist die Unterteilung entlang der Z-Achse, die Frage die dabei wichtig ist, wie viele Unterteilungen? Nun das kann man nicht immer korrekt benennen.


    Man muss hier wieder eins bedenken, wie Arbeitet CSL überhaupt.


    Viele haben sich schon gefragt, warum diverse Fahrzeuge nicht sehr Detailliert sind, nun umso mehr Details ein Objekt hat, umso mehr Speicher beansprucht es auch, und es verbraucht auch mehr Leistung sowohl vom Prozessor als auch von der Grafikkarte, was zur Folge hat das die Bildrate sinkt, unter 25 Bilder pro Sekunde wird eine Bewegung nicht mehr als flüssig angesehen.


    Details kann man aber nicht nur durch ein Objekt darstellen, sondern auch durch Texturen, aber auch diese können nicht beliebig groß sein, denn umso größer eine Textur ist umso mehr Speicher belegt sie, und diese Daten müssen dann auch in den Speicher der Grafikkarte damit sie dann die Objekte entsprechend darstellen kann.


    Deshalb, so wenige Polygone/Faces/Tris(Dreiecke) verwenden wie es nur geht.


    Bei der Erstellung von Objekten sollte man immer mit dem sogenannten Low-Mesh beginnen, also dem LOD-Objekt, ja CSL berechnet in den meisten Fällen es selber, aber diese sehen nicht immer schön aus und der Straßen-Editor kann dies zurzeit überhaupt nicht, auch wenn man es oben rechts angezeigt bekommt.


    Aber kommen wir zum 1. Bild zurück


    Wie verbindet eine Node diese beiden Straßen-Segmente miteinander.


    In dem Beispiel haben beide Enden die gleiche Anzahl an Vertex (zu Deutsch Scheitel, also der Scheitelpunkt, im weiteren Punkt genannt).

    Es muss immer darauf geachtet werden das am Ende einer Node & Segment keine weiteren Punkte zwischen der Fahrbahn und dem Gehweg existieren, da es sonst zu Darstellungsfehlern kommen kann, aber dazu später mehr.


    Die Verbindung zwischen 2 Punkten wird immer mit einer geraden Linie gemacht.


    In CSL gibt es 2 verschiedene Nodes, wobei man hier nicht wirklich von einer Node reden kann, es gibt in den Einstellungen für Segmente eine Option die nennt sich „Disable Bend Nodes“, diese ist deaktiviert, dies bedeutet das ein Segment für die Biegung zuständig ist, jedenfalls habe ich das bis jetzt so verstanden.


    Wenn man diese Option aktiviert, dann wird für das Biegen eine Node-Objekt benötigt, das kann man dann unter den Einstellungen für die Node speziell aktivieren.


    Nimmt man eine Straßen-Vorlage und erstellt mit dieser eine L-Form und aktiviert dann die Option „Disable Bend-Nodes“ erscheinen an der Stelle dann 2 Zebrastreifen, denn die Biegung ist dann eine Kreuzung.


    Also man kann Nodes nicht nur für Kreuzungen verwenden, sondern auch für Biegungen (Englisch Bend), keine Panik man braucht das nur selten umzustellen, außer man möchte so was wie ein Feldweg erstellen, so wie es im Workshop einer gemacht hatte, der Ersteller hatte da das Problem mit dieser Biegung gehabt, aber das konnte er beheben, als ich im geschrieben habe, dass er eben diese Einstellung nutzen muss.


    Es gibt an viele stellen diverse Einstellungen für das Bending (zu Deutsch Biegen), aber wie die genauen Wechselwirkungen sind, das habe ich auch noch nicht alles raus.



    Hier sieht man wie die Node die beiden Segmente miteinander verbindet, da das Node-Objekt keine Unterteilungen hat, entsteht diese Ecke.

    Dieses Beispiel ist nicht 100% identisch mit der Art wie das Spiel es macht, oder die Engine die das Spiel verwendet.



    Hat eine Node aber genug Unterteilungen, dann wird die Verbindung gebogen, das gleiche gilt natürlich auch für ein Segment.



    Was hat es sich mit diesem Bild auf sich? Nun in den Einstellungen einer Straße gibt es den Parameter „Min Corner Offset“ dieser steht eigentlich auf „0“ (Null), diese Einstellung sagt dem Spiel wie stark diese Biegung der Straße erfolgen soll, ein Wert von „0“ entspricht dem vorherigen Bild, ein höherer Wert lässt die Biegung Sanfter verlaufen, so wie hier im letzten Bild, aber Achtung, dieser Wert sollte nie größer als 40 sein, da sonst die Kollisionsabfrage nicht mehr korrekt arbeiten kann.


    Hier eine Typische T-Kreuzung, nun es soll mal eine werden.

    Bei einer Straße mit Biegung ist ja noch alles bestens, aber bei einer Kreuzung geht das nicht so einfach.



    Hier sieht man nun, warum die Unterteilung durch die Z-Achse wichtig ist, damit die eine Hälfte der Straße nach links verbunden werden kann und die andere Hälfte nach rechts, das Loch was dabei entsteht, wird automatisch auch miteinander verbunden.



    Da die Node keine Unterteilung hat, außer durch die Z-Achse, kommt es zu dieser Eckigen T-Kreuzung.

    Die Frage auch hier, wie viele Unterteilungen benötigt man denn so?



    Hier das Ergebnis des 3D-Objekts im Spiel, die Node hat gerade mal 12 Tris (Dreiecke) und keine Unterteilung entlang der Z-Achse



    Hier hat das Node-Objekt entlang der Z-Achse 1 Unterteilung, es sind nun 24 Tris (Dreiecke).



    Es geht direkt weiter.

    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

    5 Mal editiert, zuletzt von Samson1971 ()

  • So sieht das Node-Objekt im Spiel und im 3D-Editor aus, es hat gerade mal 36 Tris (Dreiecke), wenn man 15 Unterteilungen nimmt also 16 einzelne Bereiche, im Bild sieht man ja das entlang der Z-Achse gerade mal 3 Bereiche sind, kommt man bei 16 Bereiche auf 192 Tris (Dreicke).


    Bei dem oberen Bild wird für das Objekt im 3D-Editor gerade mal 15,82 Mbyte Speicher verbraucht, bei 16 Bereichen sind es schon 15,84 Mbyte Speicher, nun kann man sagen, das sind doch nur 2 Mbyte Speicherplatz mehr die gebraucht werden, mag nicht nach viel klingen, aber was ist, wenn man von diesen Kreuzungen oder besser gesagt Nodes einige 100 oder 1000 im Spiel hat, nun das Spiel wird dieses anders Verwalten als man es denkt, denn bei 1000 Nodes á 2 Mbyte Größen unterschied, wären das schon 2 GByte, daher liegen wohl alle Nodes einmal im Speicher, aber trotzdem, immer Sparsam sein umso flüssiger läuft das Spiel.


    Im Straßen-Editor kann man ja seine neue Straße Stück für Stück nun zusammensetzen, dabei kann es unbewusst zu ein paar kleine Hürden kommen, wie im folgenden Bild.



    Nun wir sehen hier mehrere Rechtecke, 2 Rote und 2 Grüne, nun fragt man sich was ist hier schiefgelaufen, warum sieht man hier Hellblaue stellen? Das ist der Hintergrund des 3D-Raums in dem das Spiel läuft.


    Was ist aber passiert, das dies passieren konnte? Es gibt 2 Fehler, einmal eine Einstellung der korrekten Parameter in den „Properties“ der Straße selber und einmal ein Fehler im 3D-Objekt selber.


    Rot ist eine Einstellungssache und Grün ist ein Fehler im 3D-Mesh.


    Kommen wir zur Einstellungssache, hier ist es wichtig, dass man den korrekten Wert für den Bürgersteig/Fußweg einstellt.



    Hier habe ich im 3D-Editor mal nachgemessen wie Breit der Bürgersteig/Fußweg ist, er ist 2m Breit, diesen Wert trägt man in den „Properties“ unter „Pavement Width“ ein. Damit verschwindet der Hellblaue Hintergrund an den Fußwegen.


    Was hat es sich mit den Fehlern in den Grünen Bereichen auf sich, wenn man sich das letzte Bild nochmal anschaut, sieht man hier ein Dreieck, nun denkt man sich, toll alle 3D-Spiele arbeiten mit Dreiecken (Tris) ja aber hier ist die Punkt Anzahl entscheidend.


    Alle Straßen in CSL sind wohl so aufgebaut, das sich an dieser Stelle niemals mehr als 7 Punkte auf der Geradenlinie der X-Achse sich befinden dürfen, da sonst die Übergänge zu anderen Straßen nicht korrekt funktionieren.


    1 Punkt bildet die Unterteilung auf der Z-Achse, 2 weitere Punkte bilden den Rand der kompletten Fahrbahn, 2 weiter Punkte die Bordsteinkante und der Beginn des Gehwegs und die 2 letzten Punkte außen den Abschluss des Gehwegs.


    Schaut man sich das obige Bild genauer an, ist durch das Dreieck ja ein weiterer Punkt dazu gekommen, und der verursacht die Fehler in den Grünen Bereichen der Fahrbahn.


    Das Mesh oder 3D-Objekt kann sonst Punkte haben wie es will, die Punkte müssen nicht einmal mit einander irgendwie verbunden sein.



    Hier habe ich einfach mal eine Trennwand dem Segment hinzugefügt, das einzige was hier auch wichtig ist, die Unterteilung entlang der Z-Achse und durch die Z-Achse selber, was im obigen Bild noch nicht der Fall ist.


    Eins muss man beachten, eine Node sollte niemals irgendwelche weiteren Straßen-Details aufweisen, sondern die Pure Straße selber nur sein, also Gehweg und Fahrbahn oder Seitenstreifen und Fahrbahn, da man so mit den 7 Punkten im Querschnitt immer eine Straße mit beschreiben kann.


    Es gibt noch einen Sonderfall dieser geht schon aus dem Bild hervor, ein Mittelstreifen, egal wie, aber dazu später noch was mehr.


    Zurück zur Trennwand, die hat sonst keinerlei Verbindungen zur Straße würde aber so korrekt im Spiel/Straßen-Editor dargestellt werden.


    Nun zum vorläufigen Schluss noch etwas zu den Low-Mesh / LOD-Objekten.


    Was heißt „LOD“ überhaupt, es steht für „Level Of Detail“ also dem Detailgrad, was aber nicht wirklich korrekt ist, eher „Low Of Detail“ kleine oder wenige Details, aber es wird oft „Level Of Detail“ genannt.


    Wie bereits schon geschrieben, verbraucht jedes Objekt Speicherplatz, umso mehr Details ein Objekt hat umso mehr Speicher wird dafür benötigt.


    Ab einer gewissen Kamera-Distanz sieht man diese ganzen Details eines Objektes eh nicht mehr, also warum soll man hier noch ein Objekt verwenden was mehrere Megabytes Speicherplatz verschwendet, dazu noch erhebliche Leistung verbraucht damit es dargestellt werden kann, wenn man am Ende davon doch nichts sieht.


    Daher stammt die Idee des LOD, ein LOD-Objekt besteht eigentlich nur noch aus dem Charakter eines Objekts, also den markanten Ecken und Kanten die ein Objekt aus großer Entfernung wiedererkennen lässt.


    Daher fängt man bei Objekten mit dem LOD-Objekt an, erst später fügt man weitere Details hinzu die dann sichtbar sind, wenn man näher an das Objekt kommt.


    Man kann das mit dem Zeichnen vergleichen, man Zeichnet grob vor, das ist das LOD, dann wird man genauer und geht in die Details.


    Wo man z.B. von weitem nur eine Flache Wand sieht, sieht man bei näher kommen an die Wand, ab einen bestimmten Punkt, dass die Wand nicht Flach ist, sondern eine Welle bildet.


    Hier mal ein Bild dazu.


    Hier werden gerade mal 2 Tris (Dreiecke benötigt)



    Hier die Wellenwand, die benötigt gleich 32 Tris (Dreiecke)


    Also warum dieses Objekt Rendern, wenn man aus der Entfernung eh nicht mehr unterscheiden kann, ist es eine glatte Wand oder eine Welligewand.


    Genauso sollte man mit den Texturen aufpassen, die Straßen-Textur hat gerade mal eine Auflösung von 256 X 256.


    Man kann auch größere Texturen verwenden, aber auch hier ist die Frage, wie viel von den ganzen Details sieht man später im Spiel überhaupt noch?


    Bei den Texturen ist es ja noch einfacher, man kann ja eine Hochaufgelöste Textur verwenden und erstellt davon eine Kopie mit einer viel geringeren Auflösung, man schaut sich das Ganze im Spiel an, ob das ausreicht, wenn ja, verwendet man diese Textur mir der kleineren Auflösung.

    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

    2 Mal editiert, zuletzt von Samson1971 ()

  • Platzhalter

    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
  • Vielen Dank, dein Einsatz beim Strassen-Editor ist einfach Klasse auch wenn es für mich eher ein Buch mit sieben Siegeln bleiben wird, denke ich das der Editor ein riesiges potenzial hat und unser geliebtes CS einiges verbessert.

    • Offizieller Beitrag

    Jupp, von mir auch nochmal ein herzliches Dankeschön für deine Erklärungen.

    Meine Kerze für den Straßen-Editor leuchtet nun wesentlich heller. :D


    Die Nodes liegen allerdings noch etwas im Dunkeln:


    Wird ein Node-Mesh generell nur zur Hälfte, also ober- bzw. unterhalb der X-Achse gerendert, oder nur bei Übergängen/Kreuzungen zu anderen Straßentypen, die wieder einen eigenen Node-Mesh mitbringen? Wahrscheinlich Letzteres, weil CO ja sonst nur halbe Meshes dafür verwendet hätte, oder?! Das komplette Mesh würde demnach nur für Übergänge zwischen zwei Segmenten des gleichen Straßentyps verwendet werden.

  • Also das Thema Nodes darauf werde ich wohl noch etwas mehr eingehen müssen, aber damit muss ich selber erst noch was experimentieren damit ich dies vollständig begreife.


    Hier nochmal ein Bild einer Node.



    Habe das ganze mal Farblich abgetrennt, wie man auch sehen kann ist die Node korrekt an der Z-Achse ausgerichtet.


    Wann kommt eine Node zum Einsatz? wenn man eine einzelne Straße baut, befindet sich am Anfang und am Ende dieser Straße eine Node, eine Straße besteht somit immer aus 2 Noden und 1 Segment (der eigentlichen Straße)


    Woher weiß aber das Spiel, wo ein Straßen-Segment anfängt und wo es endet? schauen wir uns mal das Bild oben etwas näher an, es ist in 3 Bereiche unterteilt, anhand der Achsen-Ausrichtung steht auch schon fest wo Anfang und Ende ist, das Ende findet man immer in Richtung der Positiven Z-Achse (im Bild der kleine Blaue Pfeil), also ist das Ende hier im Bild an der rechten unteren Kante dieses 3D-Objekts, der Anfang entsprechend an der linken oberen Kante.


    Warum habe ich das ganze Farblich getrennt, nun bei einer Node haben diese Bereiche eine besondere Bedeutung, in einer Node sollten keine weiteren Objekte im Bereich der Fahrbahnen sein, der Gehweg oder Seitenstreifen wird immer zu den anderen Straßen gebogen werden.


    Objekte die im Fahrbahnbereich sind, besonders in der Fahrbahnmitte, z.B. Mittelstreifen, diese würden um so mehr sie in den roten Bereich kommen nach links und rechts gedehnt werden, ein Punkt der genau auf der Z-Achse in der Mitte der Fahrbahn ist, würde auch dort bleiben bis dieser in der Mitte einer Kreuzung ankommt.


    Eine Node wird auch nicht so wie man sie erstellt hat benutzt, sie wird gestaucht werden, um die Hälfte auf der Z-Achse, das ist auch der Grund bei Erhöhten Straßen mit dem Brückengeländer, das hier die Senkrechten Streben meist sehr dicht beieinander liegen als die übrigen.


    Was Texturen in der Node angeht, nun hier für kann man auch die Farblichen-Bereiche gut nutzen, im Grünen Bereich liegt meistens die Textur für den Zebrastreifen, das hier schon das dehnen vom mittelpunkt der Z-Achse beginnt erkennt man daran das bei manchen Straßen die Zebrastreifen-Textur nicht gerade ist sondern auch eine Krümmung oder Biegung aufweist.


    Wenn man einen Mittelstreifen erstellen möchte, muss dieser spätestens in der Node enden, daher ist es wichtig, wenn möglich, diesen Mittelstreifen im Segment mit enden zu lassen, aber es gibt auch Mittelstreifen die etwas Sanft auslaufen, dies kann man dann in der Node machen, aber Achtung, man hat hier nicht viel Spielraum, umso weiter man in den Grünen-Bereich hineinkommt um so mehr das seitliche Dehnen dieses Mittelstreifens.



    Hier habe ich mal im Segment einen solchen schmalen Mittelstreifen erstellt, wie man sieht, ist das Objekt offen, denn man sieht den Schatten, um diesen Mittelstreifen zu schließen, muss man das ganze im Node-Objekt abschließen.



    Hier wurde im Node-Objekt im Grünen Bereich ein Endstück für den Mittelstreifen erstellt, im Spiel oder Straßen-Editor sieht das dann so aus.



    In den 2 oberen Bildern, durch anklicken kann man sie vergrößern, sieht man was im Gelben Bereich der Node passiert, im 1. Bild oben ist es eine klassische Kreuzung, hier bleibt alles soweit wie gehabt weil der Mittelstreifen im Zentrum der Z-Achse auf ein Punkt zusammen läuft.


    Im 2. Bild oben, sieht man aber was bei einer T-Kreuzung schon passiert, der Mittelstreifen der beiden anderen Straßen biegen sich in Richtung der einen Straße. im unteren Bild sieht man wie es im 3D-Editor aussieht.


    Hier noch ein paar Bilder


    Hier habe ich für die Node ein Mittel-Objekt erzeugt, wie man deutlich sieht ist der Grüne Bereich in 2 Stufen aufgeteilt, im folgenden sieht man wie das ganze vom spiel umgesetzt wird.



    Hier sieht man das Ende einer Straße, die Node wird auch hier verwendet, aber das kann man bei den Nodes so einstellen das diese Node an Straßenenden nicht dargestellt wird.



    Hier sieht man wie sich das ganze bei einer Kreuzung auswirkt, die ersten beiden Stufen befinden sich im Grünen-Bereich, die 3. Stufe ist der Gelbe-Bereich und die letzte 4. Stufe der Rote bereich, wie man sieht, laufen fast alle Kanten in der Kreuzungs Mitte zusammen.

    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
    • Offizieller Beitrag

    Ahhhhh, jetzt hab ich das mit den Nodes endlich gerafft! :D Danke!


    Die Nodes werden immer komplett und nie nur zur Hälfte gerendert, aber sie reichen halt auch nur genau bis zum Kreuzungsmittelpunkt, wo sie sich im jeweiligen Winkel zu den benachbarten Segmenten mit deren Nodes verbinden. Da haben mich wohl die Beispielbilder aus dem ersten Beitrag etwas verwirrt, weil dort irgendwie nicht eindeutig zu erkennen ist, welche Abschnitte zu genau einem Node gehören. Wenn man zweimal hinguckt und auch deine Triswerte nachrechnet schon, aber gut... :ms_smiling_face_with_halo:.

    Könntest Du ein Bild vom Straßeneditor veröffentlichen, bei dem gleichzeitig eine oder mehrere Kreuzungen aus verschiedensten Straßenarten (evtl. auch Zug, usw.) zu sehen sind, die auch unterschiedlich eingefärbt sind, so dass man gut die Übergänge erkennen kann?


    Mich irritieren nur noch die Lücken, die auf dem letzten Bild zwischen den Verbindungen der Nodes um den Kreuzungsmittelpunkt herum entstehen.

    wie man sieht, laufen fast alle Kanten in der Kreuzungs Mitte zusammen.

    Was passiert da? Ist das ein (einstellbarer) Überblendbereich?

  • Werde es mal versuchen, diese Lücken entstehen durch den Aufbau des 3D-Objekt was als Mittelstreifen dient, es besitzt halt am Ende einer Node in der Fahrbahn mehrere Punkte, eine Node darf aber am Ende nur aus 7 Verbindungspunkte bestehen. 1 Punkt Zentral auf der Z-Achse, der muss immer sein, da alle weiteren Punkte auf dieser X-Achse jeweils nach links und rechts gebogen werden.


    Werde es aber mal versuchen genauer zu Zeigen und zu erklären, wie ja schon im Text an verschiedenen stellen erklärt, verstehe ich das alles selber noch nicht 100%.

    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
  • So habe noch mal was getestet unter anderem mit Texturen.



    Das erste Bild zeigt eine Textur, wie man unschwer erkennen kann, gibt es dicke Schwarze Bereiche und auch ganz dünne Schwarze Linien, das liegt daran, das die UV-Polygone nicht die komplette Textur beanspruchen, dies muss aber besonders auf der V-Achse geschehen.


    Die anderen beiden zeigen noch mal den Übergang, die ersten beiden Stufen sind der Grüne Bereich und dann folgt der Gelbe und in der Kreuzungs-Mitte der Rote, nicht mit dem Texturbild vergleichen, sondern weiter oben.

    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 ()

  • So Ihr lieben, hier mal wieder ein paar Bilder von einen Problem was auftreten kann und von mir schon beschrieben worden ist, aber der verständnis heitshalber nochmals mit ein paar Bildern veranschaulicht.


    Hier sieht man ein Node-Objekt in einen 3D-Editor, ich nutze hier Blender, wie man sieht besteht das Mesh hier aus Dreiecken, wenn ich diese Node nun so in das Spiel einfüge, ist das Ergebnis wie folgt.


    Das Hellblaue ist der 3D-Raum in dem das Spiel arbeitet, die Straße wird quasi in der Mitte nicht korrekt miteinander verbunden, dadurch entsteht in dem Bereich der Kreuzung diese stellen.


    Im rechten Bild sieht man das von allen 4 Straßenanbindungen diese in der Kreuzungs-Mitte spitz zusammen laufen, das kommt durch den besagten Punkt oder der besagten Unterteilung durch die Z-Achse, Blaue Linie im oberen Bild, dort sieht man auch am Ende also wo die Grüne Linie ist einen Orangengen Punkt.


    Warum entsteht aber diese Lücke oder was verursacht quasi dieses Loch, wenn man sich das Bild mit dem Mesh oben genauer anschaut sieht man das zwischen der Roten Linie, was die X-Achse Symbolisiert und der Grünen Linie sich viele Linien von rechts, Mitte und links nach unten zur Grünen Linie verteilen, jede dieser Linien erzeugen am Ende, also an der Kante zur Grünen Linie viele Mesh-Punkte, diese Punkte sind das Problem.


    Die Grüne Linie Symbolisiert die Breite der kompletten Fahrbahn auf denen die Fahrzeuge fahren können oder sollten, innerhalb der Grünen Linie, was die komplette Fahrbahnbreite Symbolisiert, darf nur ein einziger Punkt im Mesh existieren, sind dort weitere Punkte entstehen dann diese Typischen Lücken wodurch man den Hellblauen Hintergrund der 3D-Welt sieht, der einzige Punkt der hier sein darf, ist der genau auf der Blauen Linie der Z-Achse.


    Die Pinken Linie zeigt den Bereich des Gehweges oder Randstreifen, hier können so viele Punkte sein wie man will, aber ich empfehle dennoch sich an die Regel zu halten auch hier unnötige Punkte zu vermeiden, deshalb sollten auf der ganzen Breite Pinke und Grüne Linie zusammen genommen, immer nur maximal 7 Punkte befinden.

    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
  • Sorry Leute das es lange sehr ruhig war, was mein Tutorial zum Straßen-Editor angeht, die Überarbeitete Version, nimmt doch mehr Zeit in Anspruch als gedacht.

    Wenn alles klappt, wird mein Tutorial viel mehr Wissen vermitteln, angefangen mit dem Modifizieren bereits vorhandener Straßen unter Beibehaltung der Grundlegende Straße, z.B. anpassen der Fahrspuren oder ändern der Props.

    Dann das erstellen einer komplett eigenen Straße, also was man in einen 3D-Programm beachten muss damit eine komplett neue Straße für Cities-Skylines entstehen kann, dazu gehören diverse Einstellungs-Fehler und auch unbeabsichtigte Fehler die einen schnell mal unterlaufen können.

    Dann das Texturieren der neuen Straße und welche Fehler auch hier einen eventuell zur Verzweiflung bringen kann.


    Da ich Berufstätig bin und nicht ständig in meiner Freizeit am PC sitze, braucht dies leider halt doch mehr Zeit als gewollt, aber als ich mit der 2. Version begonnen habe, kamen einige Dinge auf die man etwas mehr und auch näher erklären muss, leider sind diverse Informationen über die Parameter im Straßen-Editor immer noch Unbekannt, daher heißt es "Trail and Error" Versuchen und aus Fehlern lernen (meine Übersetzung)

    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
  • Viel Mühe gibtst du dir mit dem Tutorial. Und nebenbei noch zur Arbeit gehen. wie ja bei mir auch...

    Ich habe auch sehr lange mit den Nodes rumexperimentiert, bevor meine Brücken so passten, wie sie sollten. Am besten ist es, hier ein Original-Objekt hinzuzuziehen, die Unterteilungen im Mesh sollten wirklich haargenau so auf das eigene Objekt übertragen werden. Und ich arbeite nicht mit Dreiecken; ich habe bemerkt, dass sie parallel durch das gesamte Objekt führen.

    Auch hatte ich schnell mitbekommen, dass tatsächlich die Nodes-Objekte genauso lang sein müssen wie alle anderen.


    Aber Bilder sagen vielleicht mehr als tausend Worte. Leider hab ich kein Straßenbauwerk zur Hand:



    Und warum eine Seite rosa ist, beschreibe ich demnächst

    Meine Workshop-Schmiede auf STEAM und meine Alben hier

    Mein PC :matrix745:

    Mainboard: MSI X570-A PRO / AM4, AMD X570, ATX

    Prozessor: AMD Ryzen 7 3700X 8-Core Processor

    RAM: 4x DDR4-2132 (1066 MHz) G.Skill von Samsung /4x16GB

    Grafikkarte: MSI GeForce - NVIDIA RTX 4060 Ti, 16GB GDDR6

    Datenträger: Samsung SSD 860 QVO 1TB

    Monitor: LG UltraGear Gaming Monitor 27 Zoll, QHD, 2560x1440, Matt-Schwarz

  • Also das die Nodes zu 99% immer identisch mit den Segmenten sind, das war mir schon von Anfang an klar, klar muss man nicht in Blender oder anderen 3D-Programmen mit Dreiecken Arbeiten, sondern am besten mit Vierecken, aber es kann durchaus mal vorkommen, das beim Exportieren ins FBX-Format, hier wird alles in Dreiecke umgewandelt, nicht korrekt sind.


    In meinen Tutorial habe ich auch immer die Tris erwähnt, denn ein Straßen-Segment mit 10000 Tris wird nicht besser sein als ein Straßen-Segment mit einigen 100 Tris, das einzige was leidet ist die Leistung, umso weniger Tris man verwendet umso besser ist es.


    Meine Version vom Tutorial wird sehr umfangreich werden, an einer anderen stelle habe ich das schon geschrieben gehabt, es wird mehrere Kapitel umfassen.


    1. Wie man bereits vorhandene Straßen anpassen kann, z.B. Geschwindigkeiten oder die Fahrtrichtung, z.B. aus einer Straße mit 2 Fahrtrichtungen eine Einbahnstraße erstellen, oder wie man auch ein Stations-Gleis erstellen kann.


    2. Wie man ohne einen 3D-Editor die Oberfläche einer bereits existierenden Straße anpassen kann, und wie man an alle benötigten Texturen für diese Straße herankommt und diese dann auch so ändert das man sie später dann auch wieder laden kann.


    3.1 Das erstellen einer komplett eigenen Straße, hier werde ich auf die Segment-Erstellung eingehen und ein paar Punkte die man beachten sollte.


    3.2 In diesen Kapitel wird die Node behandelt, worauf man achten muss und welche Tücken einen in die Quere kommen können, sowohl Mesh-Fehler als auch Einstellungs-Probleme.


    4. Dies wird das Abschluss Kapitel werden, hier geht es um die Texturen, auch hier gibt es diverse Dinge zu beachten und auch Fehler die einen gar nicht sofort ins Auge fallen aber einen die Haare zu Berge stehen lässt und dann gänzlich daran verzweifelt.


    Also viel Arbeit

    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
  • Beim Node bezog ich mich unter anderem auf dieses Teil mit den vielen Meshs

    &thumbnail=1


    Hier befinden sich am Ende besonders viele Vertices. Wahrscheinlich agieren reine Triangles anders als welche, die man zu Quads konvertieren kann. Ich hab bei mir nur Quads an den Schnittstellen zusammentreffen lassen. Anscheinend kann das Spiel nur diese (dann sind aus einem Quad zwei Tris geworden) ordnungsgemäß strecken oder stauchen.


    EDIT: Zur rosa Seite an meinem Ziegel-Node wollte ich ja noch schreiben (Kurzform):

    Dort wird die Textur nicht gestreckt oder gezerrt, sie verbleibt an der Stelle, wo sie mit Blender aufgelegt wurde. Normalerweise behält die Textur immer die selbe Größe, egal, wie lang das Modell gestreckt wird. Im Falle des Ziegel-Nodes werden die Steine nicht lang und länger, sondern behalten immer die selbe Form, so, wie auf einer Leinwand.

    Allerdings sehen nur Texturen parallel zur Trasse schön aus, quer dazu strecken sie sich je nach Winkel bis ins Unendliche. Daher müssen die Vertices bearbeitet werden.

    Hierbei werden die entsprechenden Vertices in Blender / Vertices Paint eingefärbt. und zwar mit dem Mangenta-Farbton HEX=FF00FF

    Die Textur hat nichts mit dem Rosa-Ton zu tuen, es ist im Spiel auch nicht mehr zu sehen.


    Hier kann man sehen, wenn man querstehende Meshs nicht mit dem Vertices-Paint behandelt, wie sich die Textur streckt.

    Meine Workshop-Schmiede auf STEAM und meine Alben hier

    Mein PC :matrix745:

    Mainboard: MSI X570-A PRO / AM4, AMD X570, ATX

    Prozessor: AMD Ryzen 7 3700X 8-Core Processor

    RAM: 4x DDR4-2132 (1066 MHz) G.Skill von Samsung /4x16GB

    Grafikkarte: MSI GeForce - NVIDIA RTX 4060 Ti, 16GB GDDR6

    Datenträger: Samsung SSD 860 QVO 1TB

    Monitor: LG UltraGear Gaming Monitor 27 Zoll, QHD, 2560x1440, Matt-Schwarz

    3 Mal editiert, zuletzt von ArkenbergeJoe () aus folgendem Grund: Roas hinzu

  • Ja danke, das mit den Vertices ist mir auch bekannt man muss mit Vertices-Painter das ganze passend mit ROSA einfärben damit werden Texturen fixiert, denn macht man das nicht, dann werden Texturen entlang der Textur-V-Achse gescrollt oder halt verschoben, darauf werde ich dann auch genauer in dem Kapitel Texturen und Straßenoberflächen eingehen.


    Bezug auf das Bild mit den vielen Verticies am Ende, das ist halt eine Besonderheit bei Nodes, bei Segmenten ist das nahe zu egal, soweit was ich bisher getestet habe, aber bei Nodes muss man gerade an dieser stelle darauf achten das hier nur eine gewisse Anzahl an Verticies/Punkte sein dürfen, und das zwischen Mittlere Unterteilungslinie und dem Fahrbahnrand keine weiteren Punkte mehr sein dürfen.

    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
  • Ich schreibe es auch für alle anderen Mitleser, die sich wundern, wenn auf einmal Teile anders aussehen, als im Spiel.

    Das Rosa-, oder genauer Mangenta-Einfärben ist in der Tat verdammt schwierig. Ich habe da einen einfacheren Weg gewählt. Die betreffenden Meshs auswählen und löschen, diese als eine andere Referenzdatei kopieren. Danach invertieren, d.h. die nicht betroffenen Meshs sind ausgewählt, und werden gelöscht. Danach die übrig gebliebenen Meshs einfärben, färben, was das Zeug hält, speichern, und anschließend die meshs aus der Referenzdatei wieder per "file/append" hineinkopieren; als separates Objekt. Aber wenn nix umgebaut wurde, sollten diese Objekte nahtlos zusammenpassen. Anschliesend die Objekte zu einem Einzigen per "join" zusammenfügen, und unnötige Texturinformationen löschen.

    Für die Langfassung könnte ich noch ein paar Sceenshots liefern

    Meine Workshop-Schmiede auf STEAM und meine Alben hier

    Mein PC :matrix745:

    Mainboard: MSI X570-A PRO / AM4, AMD X570, ATX

    Prozessor: AMD Ryzen 7 3700X 8-Core Processor

    RAM: 4x DDR4-2132 (1066 MHz) G.Skill von Samsung /4x16GB

    Grafikkarte: MSI GeForce - NVIDIA RTX 4060 Ti, 16GB GDDR6

    Datenträger: Samsung SSD 860 QVO 1TB

    Monitor: LG UltraGear Gaming Monitor 27 Zoll, QHD, 2560x1440, Matt-Schwarz

  • Also in Blender ist der sehr einfach diese Polygone und somit Verticies/Punkte auszuwählen und dann mit Verticies-Painter die entsprechend einzufärben


    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 ()