Objekte in einem Terrain ? ( Management )
-
Hi,
Ich habe jetzt eine große Datei für mein Dynamisch großen Terrain ausdesignt.
Aber mein Problem ist noch momentan wie ich die Objekte im Terrain zu handhaben soll.Ob es jetzt sinnvoll ist, die Objekte( Seine, umgefallene Bäume, Sträucher, ..usw ) ans Ende der Datei hängen soll, oder extern nochmal eine Datei erstellen.
Warscheintlich ist es sinnvoller eine Externe Datei "nur" für die Objecte zu machen, damit sie auch für jede Level zugängig ist.
Jeder Terrainabschnitt bekommt dann einfach eine "Objekt-Liste" und läd nicht vorhandene dann einfach dazu und entfernt die überflüssigen Objekte in der Liste( damit die Liste nicht zu groß wird ).
Fällt euch da etwas Bessteres ein, oder gebt einfach mal eueren Senf dazu
Ok, ein anderes Problem ist die Größe vom Terrain.
Also wenn ich zb. 100 km² terrain haben will, dann brauch ich 100 mb für mein Terrain. weil 1km² ( 1000*1000 Einheiten (m) ) = 1mb.
Aber 100mb ist einfach zu viel für eine "so" kleine Level.
Zerbi zb. hat eine 256*256 hm(heightmap) auf 1024*1024 gestrecht und dann nochmal eine detail textur draufgeklascht, und dann erst die höheninfos ausgelesen.
Aber da ich mein Terrain in echtzeit aus der Datei laden(muss/will) ist diese möglichkeit nichts für mich.Ich hatte mir überlegt eine 256*256 zu nehemen und die Höhen informationen auf 1024x1024 zu strechten. Also ich les erstmal alle 256*256 höheninfos aus und dann bekommt nicht jede Einheit(m) eine höheninformation sonder jeder 4.
Aber ich glaube das ist auch keine gut Lösung.
Vielleicht könnt ihr mir ja weiterhelfen...
Bye
-
*push*
-
Verstehe Dein Problem nicht wirklich...
Wie Du Deinen Kram handhabst, bleibt doch Dir selber überlassen, wie Du den Rest auch designt hast, wie Dein Geschmack halt so ist...
Sinnvoll wäre es sicher, wenn die Objekte seperat geladen werden, zumindest, wenn Objekte auch auf verschiedenen "Terrain-Blöcken" vorhanden sind...
Da wird's ziemlich schwer, wenn Du alles zusammenmümmelst und mit einer CRC-Kodierung als Binärfile abspeicherst...
-
Hi,
Primär ist das Speicherproblem gemeint. Wie lade ich ein 20²km ( 1Einehit=1m) Terrain in meine Engine..
Alle Informationen(heightmap) würden viel zu viel Speicher benötigen.
Also man muss immer kleine Terrain "stücke" in den Speicher laden.
Wie mach ich das zb. gescheit ?Ich hatte mir überlegt 9 Buffer zu haben mit folgender anordnung.
|-----|-----|-----|
| | | |1 2 3 4 5 6 ----- ----- ----- 7 8 9 ----- ----- ----- Die Kamera(Spieler) steht immmer in Area 5.
Sobalt die Kamera sich in eine andere Zone( 1,2,3,4,6,7,8,9)
bewegt werden dann 3 Buffer mit den neuen Daten gefüllt. ( von der Terrain Datei ausgelesen ).
Die Far-plane hat die Entfernung von einer Seiter einer Sektion-größe ( zb.1).
Aber das problem ist hier wieder ein größen problem.Wenn ich jetzt jeder Sektion eine größe von 512²m gebe.
dann sind das in Bytes ( 512² x 9² x sizeof(VERTEX) (in meinem Fall 10 bytes)
das macht dann 202,5MB nur für die BufferIch meine ich kann die Buffer auf 64m² halten
das sind dann 3 mb
Vielleicht kann einer von euch mir mal einen kleinen Tipp geben
Bye
Byte
-
Also - wenn du dein Terrain in 257x257 oder 513x513 Tilest, dann ist das doch alles kein Problem würde ich sagen. Läßt sich auch in Realtime streamen.
Achja - die 256, 512, 1024 +1 ist, weil die letzte Reihe Vertices für den Geomipmap kram besser liegt
- sind die selben, wie im nächsten Tile.
-
Hi,
Hm, und wie stellst du dir das vor ?
Nach jeder bewegung immer einen neue Reihe(Spalte) laden ? und die überwiegende löschen ?Bye
-
Besser die Alte mit der Neuen überschreiben.