Beiträge von DarkMo

Willkommen in der Transport Fever Community

Wir begrüßen euch in der Fan-Community zu den Spielen Transport Fever und Train Fever, den Wirtschaftssimulatoren von Urban Games. Die Community steht euch kostenlos zur Verfügung damit ihr euch über das Spiel austauschen und informieren könnt. Wir pflegen hier einen freundlichen und sachlichen Umgang untereinander und unser Team steht euch in allen Fragen gerne beiseite.

 

Die Registrierung und Nutzung ist selbstverständlich kostenlos.

 

Wir wünschen euch viel Spaß und hoffen auf rege Beteiligung.

Das Team der Transport-Fever Community


    mir ist er noch zu klein... - und die Lenkung stimmt nur begrenzt ;) - es lenken nämlich alle vier Räder in die gleiche Richtung :P


    In der mdl gibts doch einmal wheels und einmal axles. Was sich NICHT drehen soll, musst du als axle (Achse) definieren. Als wheel definierte Meshes drehen sich in Kurven ^^

    Sehr interessantes Tool, habs mir gleich mal gezogen. Aber damit beschäftige ich mich glaube später mal eingehender ^^ Da mein erster Versuch erstaunlicher weise einigermaßen gut aussah, hab ich den erstmal weiter verfolgt. Er wurde grob etwas runder gestaltet und ne Hand kam noch dran. Das Gefummel das alles einigermaßen auszurichten... >< Dann hab ich paar Flächen, die man nicht sieht wieder rausgelöscht und das gute Stück gespiegelt - gefällt mir immernoch ganz gut. Fehlt noch ein Kopf (hauptsächlich ein Kugelhelm und ne riesen Motorrad-Brille :D ) und das Texturieren. Bei dem Thema: Meine UV-Map für Mopped ist schon proppevoll, macht das was, wenn man dem Teil einfach nen zweites Material anhängt mit ner zweiten Textur? Sollte doch eigentlich gehn oder?

    Je Farbkanal 8 Bit. Sprich: Ohne Alpha-Kanal (und somit ohne "specularmap" (Glanztextur)) hat man nur die Kanäle for Rot, Grün und Blau -> 3x8=24 und mit Alphakanal hat man eben die 3+Alpha = 4x8=32bit pro Pixel. Will man also auf Glanzeffekte pfeiffen, kann man die Texturgröße guten Gewissens um 25% reduzieren ^^

    AAAAH super petrolhead. Ich hatte anfangs einfach ein Motorradbild gegoogled und als side.png gespeichert. Im eigentlichen Dateinamen stand drin, was es war - aber ich dösel habs gelöscht >< Nu wusst ich nur noch grob, dass es ne BMW war, aber beim besten Willen nich mehr, was für eine. Hab auch die Suche wiederholt und alles - das Bild tauchte nie wieder auf :/ Das rein vom optischen Vergleich her ähnlichste war sowas wie diese 50er, aber da hatte der Motor nie so recht gestimmt - es war aber als Name besser wie nix xD Jetzt hab ich nochmal mit deiner Bezeichnung gegooglet und fand das hier:
    http://cms.bmw-einzylinder.de/…ureihe/kurzinfo/251-d.jpg


    Das eigentliche Bild hab ich immernoch nich wieder gefunden. Aufm Rechner dient es mir immernoch als Vorlage, aber eben quasi namenlos. Dann werd ich das Büdchen mal umbenennen usw usf.

    [Blockierte Grafik: http://www.train-fever.net/index.php/Attachment/31849-2015-05-31-00004-jpg/?tiny=1]
    ES IST GESCHAFFT!


    Wie man hier wunderbar sieht... xD Nein, also in Bewegung sieht mans minimal, dass der Lenker sich dreht. Man kommt leider nicht nah genug heran um es genauer ins Bild zu bekommen und selbst der enge Kurvenradius scheint zu weitläufig zu sein, als dass es nen ordentlich sichtbaren Ausschlag gibt. Aber - es funzt *Freudentanz*


    Ich habe deine Idee aufgegriffen und den Body und das Hinterrad ebenfalls gruppiert und in der mdl hab ich dann beiden Gruppen 2 Bogies gegeben. Einmal am Vorderrad und an der Lenkachse und dann von der Lenkachse zum Hinterrad. Sieht dann so aus:


    Ich musste die Räder auch beide als Wheels angeben und NICHT als Axles, damit es klappt. War eigentlich nur ne frustrierte Spielerei, weil nix klappen wollte >< Mir scheint, dass Achsen eben feststehend sind (nicht gedreht werden in Fahrtrichtung) und Räder (also Wheels) werden gedreht. Damit sich der ganze Klimbim dreht, musste ich beides also als drehbares Gelumbsch, sprich Wheels, definieren. So erklär ichs mir zumindest. Da aber nun alles über position gelöst wurde, frag ich mich weiterhin, wozu offset gut ist.



    Nun gut, wie funzte das mit dem specular? Das war der Alphakanal der Textur oder?

    Also läuft das in etwa so:
    Mit der ID sag ich, WELCHEM Teil ich nen Bogie (oder 2...) anhänge.
    Mit der Position sag ich, WO von der Mitte (0|0|0) dieses Bogie in X-Richtung sein soll.
    Mit dem Offset sag ich dann... wo das FakeBogie ansetzen soll? Schlecht zu erklären irgendwie. Bleiben wir mal beim 2-Achsigen Drehgestell:


    Das Gestell - mit der ID 3 meinetwegen - an sich (also dessen Mitte) ist beispielshalber 4m vom Fahrzeugmittelpunkt entfernt. Die Achse, die ich nun ansprechen möchte, liegt von diesem 4m entfernten Mittelpunkt nochmals 1m weiter (die andere Achse wäre 1m zurück, also -1m). also müsste das für diesen Beispielfall dann so aussehen:

    group = 3, offset = 1, position = 4

    ? ^^

    Ich habe garkein fakeBogie drin - zumindest nicht, das ich wüsste. Ich hab nämlich nichmal den Hauch einer Ahnung, wie ich das mach xD Ich hab nur im Lexikon gelesen, dass gruppierte Objekte automatisch als Bogie aufgefasst werden. Also hatte ich erstmal versucht, dieses "Original" Bogie zu nutzen. In der mdl sieht es so aus:


    Code
    fakeBogies = {
                            {
                                group = 2,
                                offset = -0.49884,
                                position = 0,
                            }, 
                        },


    Die 2 wie gesagt als ID meiner .grp und den Offset hab ich versuchsweise errechnet aus der x-Koordinate des Rades und der Lenkachse. Da das rad eben nicht um seine eigene Achse drehen soll, sondern eben um die der Lenkachse, dachte ich, müsste ich das so verschieben. Klappt nur nicht :/ Belasse ich alle Werte auf 0, so dreht sich das Rad richtig rum und es stimmt. Nur sieht es eben blöd aus ^^

    KI-Fahrzeug BMW R25 Motorrad


    [Blockierte Grafik: http://www.train-fever.net/ind…hment/31942-overview-png/]



    Hiermit möchte ich meine erste Mod vorstellen und hoffe diese originelle Idee findet Regen anklang. Es handelt sich um ein Motorrad von BMW aus den 50ern des letzten Jahrhunderts. Es kommt in 5 verschiedenen Farben daher und ein angestrengter Reisender ziert das Schmuckstück in rasanter Haltung!


    Das gute Stück hat mich einiges an grauen Haaren gekostet, aber es hat SPAß gemacht! Obwohl ich schon sehr grob ans Schnitzen rangegangen bin, wurde ein doch recht umfangreiches Modell daraus. 4732 Polygone sind ein wenig viel für ein so kleines und oft gebrauchtes Gefährt ^^ Daher gibt es eine recht frühzeitig eingeblendete Low-Detail Version mit schmalen 219 Poly's - im Spiel nicht sichtbar, aber hoffentlich gut Ressourcen sparend :)


    Das gute Vehicle macht in der Spitze 55km/h und liegt damit genau zwischen den von Haus aus verfügbaren Autos dieser Zeit mit 50 bzw 60km/h. Realismus hin oder her, aber 95km/h Spitze fand ich ungesund fürs Balancing. Nutzt ja nix, wenn das Ding noch so schön is, man aber laufend Pleite geht, weil die Flitze-Mopets einfach zu gut für die Sims sind ^^



    Wer mich auf meiner kleinen Odyssee begleiten mag, kann unter dem Text im Spoiler mit dem Originalpost in die Entstehungsgeschichte eintauchen, alle anderen sind mit einem Klick hierrauf erlöst :P









    Original-Post:

    Mal ein wenig zu den Grundlagen ausholen:
    Poly's vs Tri's... Triangles (Tri's ^^) sind Flächen die durch 3 Punkte (Vertices) gebildet werden. Sie bilden ausserdem ideal eine Ebene ab. Bei 4 Punkten (Vertices) muss man schon sehr ideal "den 4. Punkt" setzen, dass er auch auf der Ebene sitzt. Das ist auch schon das "Problem" an Poly's -> Polygonen. Poly steht für viele (lateinisch?) und meint eben eine "Fläche" aus vielen Punkten. Zumeist 4, geht aber auch deutlich mehr. Solche Flächen sind aber eben wie beschrieben selten eben. Das gibt bei der Darstellung gerne mal Probleme und und und. Zudem wurde aufgrund des ganzen Rummels irgendwann entschieden, dass Nur noch Triangles verwendet werden dürfen (laut meinem OpenGL Buch). Gab es bis OGL 1.2? ne ich glaub 3.2 rum... auch noch Quads als interne Struktur - mittlerweile allerdings NUR noch Triangles (und ..strips und ...fans ^^).


    Beim Triangulieren werden die Polygone nun in Triangles aufgebrochen so dass alle Flächen auch wirklich eben sind.

    Code
    ________        ________
    |      |        | \    |
    |      |   ->   |   \  |
    |______|        |____\_|


    Naaaaja - der Wile zählt ^^ Wie du (hoffentlich) jedenfalls siehst: Aus einer Fläche werden zwei. Wie man eventuell auch erkennen kann, ändern sich die Vertices-Positionen nicht und es kommen keine neuen Vertices hinzu -> es hat also keinerlei Einfluss auf das UV-Mapping. Das kann man also getrost vorher machen mit weniger störenden Linien ^^ Was ändert sich fürs Programm? Der Vertices-Count bleibt gleich, die Ecken (Edges) vermehren sich und eben die Flächen (Faces) auch. Bei so manchem Schattenberechnungsalgorythmus muss man die Ecken durchackern -> mehr Ecken, mehr Aufwand. Und: Die Flächen werden als Datensatz zur GPU geschickt und von den Shadern dort aufs Bild gemalt. Mehr Fläche = mehr Datenvolumen und natürlich auch mehr Shader-Benutzung. Also Shader-Einheiten auf der Grafikkarte, so genau kenn ich mich Hardewaremäßig jetz auch nich aus ^^ Aber rein von der (meiner) Vorstellung her isses so: Man hat auf der Graka 1000 Shader-Einheiten, jede kann eine Fläche bearbeiten. Also in einem Zyklus - Faces per Clock szs ^^ hat man nun ein 1000 Triangle-Mesh, so kann dies also in einem Durchlauf gepinselt werden. Sinds aber 2000, braucht man 2 Durchläufe.


    Wieviele Faces braucht man? Ist einerseits klar Distanzabhängig. Ist man weit entfernt, erkennt man Details (von kleinen Details noch garnicht geredet) kein Stück mehr, ABER sie werden alle berechnet. Dafür gibts diese LoD-Geschichte. Level-of-Detail. Ab einer gewissen Entfernung nutzt das Programm dann einfach eine lowpoly Variante. Das geht natürlich in beliebig vielen Schritten. Das Problem dabei ist? "Mesh jumping" oder wie mans schimpfen will. kA ob hier wer X kennt ^^ warscheinlich nich so viele. Ich meine diese geile Weltraum-Serie von Egosoft. Weltraum, weite Distanzen... Und überall Asteroiden und Stationen... Kommt man den Dinger näher, wird das feinere Modell angezeigt und das passiert ganz plötzlich. Das fällt sehr negativ ins Auge ^^ Man sollte also zumindest versuchen, wenn man Lods baut, dass diese "stimmig" sind. Die moderne (aber performancehunrige) Lösung nennt sich Tesselation - das ist eine dynamische Berechnung des Detailgrads. WIE genau das funzt, hab ich mir noch nich zu Gemüte geführt, aber das geht auch mit OpenGL - ganz ohne DX11 Hardware oder OS ^^


    Gut, LoDs sind also eine Performancelösung und TF nutzt sie. Als Modder kann man sie nutzen, muss es aber nicht. Für ein erstes Modell würd ich wohl auch drauf verzichten, vllt gibts ja gewisse Strategien des Modellierens, die einem das LoD-Erstellen einfach machen. Mir schwebt da ein grober Aufbau des Meshes vor, dass man schrittweise verfeinert und jeden dieser "Detail-Schritte" realisiert man gleich als eigenes LoD. Aber da hab ich selber noch viel zu wenig Erfahrung, um zu ergründen, wie praktikabel sowas wäre.


    Gut, dann sollte man sich dringenst mit den Möglichkeiten der Texturierung beschäftigen. Es ist erstuanlich, was Texturen an Details vorgaukeln können. Oftmals sind kleinere Details besser gemalt als ausmodelliert. Eine unterschiedliche Textur macht 0,nix an der Performance, aber es kann viele Poly's einsparen. Das ist aber auch ein Thema... sowas zu wissen, sowas bewusst schonmal gesehen zu haben, mag hilfreich sein - aber sowas auch selber umzusetzen... hui ^^ Das is leider gottes nich einfach :/


    Am besten baust du dein Teil da erstmal fertig und setzt es Ingame. Und DANN schaust du nach, was man überhaupt alles erkennt. Was war überflüssig, was könnte besser gemacht werden. Ich habs an meiner eigenen Übung gesehn, mein Modell war noch zu grob >< vllt wars auch nur das fehlende Smooth, kA. Aber sowas sind einfach Erfahrungswerte. Bei deiner 10. Mod wirst du sicherlich ein ganz anderes Gefühl dafür entwickelt haben. Du weist ohne Testerei, was wie wirken wird (in TF) und umschiffst Probleme frühzeitig.


    Ich hoffe ich konnte dir ein wenig Einblick geben und du siehst an mir: Theorie und Praxis sind 2 Paar Schuhe ^^ Ich habe schon ne eigene OpenGL-"Engine" gebaut (war noch ned fertig und ob mans direkt Engine schimpfen konnte... wer weis xD) und kenne mich einigermaßen mit der Theorie aus. Aber selber hier praktisch zu modden ist wieder was ganz anderes. Aber: Spaß machts :P

    Haste die Fehlermeldung denn auch mal gelesen? ^^ Er kann die Strassen nicht neu berechnen, da irgendwas daran fehlerhaft ist. Hast du gemoddete Strassen bei dir drin? Und ich würde tippen, dass dir das Game immer um die Ohren fliegt, wenn sich ne Stadt ausbaut oder Strassen erneuert werden oder du Strassen bauen magst.


    Sry für den Doppelpost, aber hab gerade das hier gelesen:


    Läuft es eventuell jetzt wieder bei dir?

    Wegen meinem Tunnelproblem:

    Es lässt sich alles mehrgleisig bauen was weniger als 2 Mio kostet und fertig!


    Da mein Tunnel mehr wie 2mille kosten sollte, wirds wohl daran liegen. Wo das allerdings im Forum stehen soll (auch im zitierten Post geschrieben) erschließt sich mir auf die schnelle nicht und scheint auch kein Allgemeinwissen zu sein :P