Das Terrain unentlich groß gestalten?
-
Hi,
Habit iht vielleicht eine gute Idee, um eine Terrain eine dynamische größe zu geben ? Oder was auch immer euch dazu einfällt!!Meine aktuelle Lösung ist meiner Meinung nach nicht gerade sehr schön, da ich mit Sektionen arbeite, die ich immer neu lade´.
sagen wir mal ich habe ein Terrain mit 10.000 x 10.000. Daraus werden dann 10 * (pages)1024*1024 gemacht. wenn ich dann sagen mir mal auf Page (2/3) bin (x/y) dann werden die 5 auüßenrumliegenden pages geladen. wenn ich dann auf eine andere page komme dann werden 3 wieder gelöscht und die nächsten drei ( die drei in welcher richtung ich mich bewege neu geladen. die far plane hat dabei einen abstand von 1000.
Jetzt ist aber ein probem deutlich zu erkennen, wenn ich dann auf eine neue page komme dann hab ich vielleicht eine ladezeit von 2-3(schätzungsweiese) wenn nicht sogar 5 sekunden falls es viele Objekte vorhanden sind. das kommt natüerlich nicht so gut an.
Wenn vielleicht der user pro sec1/2 meter läuft tritte das ereignis alle 12/24 min auf. ( bei diagonalem lauf). bei Flugzeug oder auto aktivität natüerlich ist das natüerlich viel schneller.
So nun zu euch,was fällt euch dazu ein ?
Bye
-
Hi,
nun, was du da hast ist ja schon ein großes Terrain. Da ich auch mal ein game mit nem relativ großem terrain gemacht hab, habe ich foglende Erfahrung:
Die Bereiche kleiner machen bringt nur begrenzt was, aber in deinem Fall würde ich das mal probieren, z.B. anstatt immer nur 9 größere Bereiche gealden zu haben, könntest du mit 16 etwas kleinernen arbeiten.btw. Schon mal überlegt, was passiert wenn der User - warum auch immmer - sich ständig über einer Grenze hin und her bewegt? Dann müsste ja ständig geladen werden. Das hab ich so vermieden, das ich immer erst die nächsten Bereiche geladen hab, wenn er die "Grenze" um 1/10 der Bereichsfläche überschritten hatte. so hast du dann eine Pufferzone, die ständiges laden verhindert.
Ah, noch was: ich weiß ja nicht wie viele Objekte bei dir so vorkommen, aber Gebäude, Einheiten, Steine und Bäume konnte ich immer im vorraus komplett laden, da es ja alle gleichen Typen von Gebäuden und Bäumen usw. großteils identische Geometrie hatte, nur eben mit eine anderen Rotations/Positionsmatrix. Die Geomtrie eines Objekts befand sich soimit nur einmal im Speicher und das hielt sich in Grenzen, weil wir am Modeln nicht soviel Spaß haten wie am proggen
-
Du solltest das Nachladen in einen eigenen Thread auslagern.
Dieser sollte dann ab einer gewissen "Weite" auf einer Terrain-Kachel langsam neue Models / Terraindaten in den Speicher schaufeln, damit alles parat liegt, wenn man an der Grenze ankommt...
-
Hi,
Danke erstmal für die Antworten.@Sgt. Nukem:
vielleicht keine schlechte Idee. Ich werde das mir mal durch den Lopf gehen lassen.btw. Schon mal überlegt, was passiert wenn der User - warum auch immmer - sich ständig über einer Grenze hin und her bewegt? Dann müsste ja ständig geladen werden. Das hab ich so vermieden, das ich immer erst die nächsten Bereiche geladen hab, wenn er die "Grenze" um 1/10 der Bereichsfläche überschritten hatte. so hast du dann eine Pufferzone, die ständiges laden verhindert.
auch keine schlechte idee. Danke.
Bye
PS: Jedem dem nochwas dazu einfällt kann ja einfach Posten.