Terrain in FarCry?



  • Hi!

    Wollt gerne mal wissen was für einen Lod Algorithmus die in FarCry für das Terrain anwenden. Roam kanns mal nicht sein läuft bei mir viel zu langsam. Weiß da jemand mehr?





  • Hab mir das mal kurz durchgelesen aber ehrlich gesagt verstehe ich das ganze nicht. So wie ich es verstanden habe hat jede Page einen bestimmten Level an Lod umso weiter weg umso weniger detailiert die Pageränder werden halt dann eben zusammen verknüpft. Schön und gut aber wenn ich mich jetzt über das Terrain bewege und auf ein neues Page komme würde dann plötzlich das Lod der neuen Page auf detailliert springen und das würde man ja sofort merken 🙄 Kleine Pages würden ja nichts bringen da ich ja dann sowieso gleich alles die CPU machen lassen kann...



  • Es muss nicht nur eine Detailstufe geben. Der Übergang kann auch in mehreren Stufen je nach Entfernung geschehen.



  • Ja schon klar dass es mehrere Stufen geben muss aber bei einer Page kann ja nur immer eine Detailstufe aktiv sein weil sonst müsstest ja auch durch alle Positionen durchgehen und das wäre ja auch CPU lastig. Naja vielleicht hab ichs falsch verstanden ich werds mir morgen nochmals durchlesen..



  • naja mach halt geomorphing o.ä. zwischen zwei LOD stufen rein, wenns zu sehr "poped" .. Aber der Algorithmus ist inzwischen natürlich auch schon wieder ziemlich alt 😉 Schau doch einfach mal hier: http://vterrain.org/LOD/Papers/index.html

    Für dich interessant (da cpu schonend) ist vielleicht der hier: http://research.microsoft.com/~hoppe/#geomclipmap


  • Mod

    heutzutage sind die grakas dermassen fix mit dem transformieren von hunderttausenden vertices, dass es nicht lohnt irgendwas großartiges mit der cpu zu machen.
    ich hab ein regelmässig tesseliertes Grid auf dem screen, dass ich abhängig von der View-prjection-matrix auf die 0 ebene projeziere (ist nur eine matrix die man ausrechnen muss), sodass es zurückprojeziert wird beim rendern und relativ regelmässig den screen abdeckt.
    im VS kann man dann aus texturen samplen und hat alle nötigen daten wie normal + height.

    das ganze ist ziemlich einfach, nur ein bissl mathe und es läuft eigentlich auch sehr sehr fix. im VS kann man zu der heightmap zusätzlich noch ein kleines noise einrechnen, was wirklich viel detail bietet.

    rapso->greets();



  • Ok danke für eure Antworten. Bin mal gespannt wann BruteForce schneller ist als irgendwas anzurühren 😃



  • nie .. wenn die terrains nur groß genug werden, wird bruteforce immer langsamer sein als LOD algorithmen 😉



  • Mach dein Terrain aus zwei Polys 😉



  • Witzigwitzig 🙄

    Wenns heutzutage um kleinere Landschaften geht verliert man heutzutage Performance wenn man Lod einsetzt da dann die CPU belastet wird die man für wichtigeres braucht. Früher wäre man bei diesem kleinen Terrain mit BruteForce völlig überfordert gewesen heut ists schneller. Spinnt man den Gedanken weiter könnte ich mir schon vorstellen dass Lod dann acuh bei großen Terrains Overhead darstellt. Schließlich wenns die Karte macht warum nicht? Resultat am besten und wenn Karte damit umgehen kann 🙄



  • In Zunkunft sind aber vielleicht die heutigen "großen" Terrains wiederum "kleine" Terrains ;). Eine Auflösung von einem Atom wär natürlich auch was feines 🙂 (Bruteforce ich komme -_-)..



  • Naja aber irgendwann hört der Sichtradius auch auf zu wachsen ich mein was bringt dir in einem FPS 100 km weitsicht?



  • siehe oben. Die Auflösung verbessert sich eben. D.h. bei deinem 10 km Sichtbereich sind jetzt nicht 1000x1000 Vertices sondern 10000x10000 Vertices --> statt alle 10 m Einer alle 1m Einer.

    Außerdem kann man sich auf vorstellen in einem ganzen (oder eben halben ;)) Planeten darzustellen. Z.b. bei einem Weltraumspiel ..



  • Klar da schon. 😃


Anmelden zum Antworten