Flexibleres Mapformat als Heighmap
-
Ich mache mir grade Gedanken über ein 3D-Multiplayer-Rennspiel mit Flexiblen Maps usw.
Bei der Wahl des Mapformats bin ich mir allerdings nicht sicher:
- Die Map soll flexibel sein, daher kann ich kein statisches, globales Model nehmen
- Heightmaps können nur Höhen speichern, was sehr schlecht für Klippen, Tunnel und Co. ist (zu niedrige Auflösung der Heightmap/ keine 2 Layer/ ...)Also habe ich mir gedacht, dass ich ein 3-Dimensionales Gitter mache, an dem ich beliebig viele Punkte ausrichten kann, die alle beliebig oft Verbunden werden können, also wie eine Heightmap nur mit 3 und 3 Dimensionen anstatt 2 und einer.
Meine Frage wäre jetzt, ob sich das im Spiel leicht verändern lässt, ob es eine andere, bessere Lösung gibt, wie ich das ggf. realisieren soll, ... und was es sonst noch bei solchen Mapformaten zu beachten gibt.
LG, Lukas
-
Das was du vr hast nennt sich Voxel Terrain, was realtiv schnell ist! Gängigerweise benutzt man für klippen und Tunnel Meshes, du hast dann beispielsweise eine hightmap, und viele kleinere modelle, wie klippen und höhlen. Wenn du diese lädt, und viele vertices des meshes ein kris bilden, wo die Vertices an den selben positionen sind wie vm terrain, entsteht dort ein durchgang, als die vertices des terrans die sich in dem kreis befinden werden nicht mehr gezeichnet, so mache ich es.
-
Also die Vertices für spezielle Objekte seperat in die Map laden. Das ist für meine Idee speziell ungeeignet, da man genau auf solche Objekte dynamisch beeinflussen soll. Aber jetzt weiß ich wie man das nennt, vielen dank!
-
Du kannst die Vertices mit der Mesh Methode ebendfalls dynamisch beinflussen, ich sehe da kein problem

-
Dann müsste ich aber schon vorher wissen, ob da ein Tunnel ist; ich schaus mir einfach mal an
-
Ich verwende das ganze ähnlich wie Voxel terrain. Du kannst die höhlen und klippen genauso machen, wie in einem Voxel Terrain, du hast eine Kugel, die du bewegen kannst! Du kannst nun einstellen, in welche rechtng die dreiecke sich drehen sollen, wenn die kugel auf etwas tift! wenn du eingestellt hast, das sie sich nach innen drehen soll, etsteht dort wo die kugel ist eine eibeulung, und wenn du sie dann durch den boden zießt, entseht eine höhle! Andersherum kannst du auch Klippen machen! Nur wird das nicht als rastergrafik abgspiechert, sondern jede klippe etc bei mir als eigene mesh!
-
Dann musst du aber auch immer kontrollieren, ob das Mesh noch sinnvoll ist, oder ob du es theoretisch löschen kannst. Außerdem hab ich meine bedenken gegenüber Heightmaps, da ich finde, das sie gerade bei kleinen Rasterauflösungen und großen Höhendifferenzen nicht viel Qualität bieten. Du Regelst das dann über eigene Meshes an den problematischen Stellen
Woran ich auch nochmal gedacht hab, ist die Einteilung von Heightmap-Bereichen auf größere 3-Dimensionale Würfel, wo dann z.B. auf einen 1x1x1 Würfel sechs 4x4 Heightmaps passen. Die Würfel würden dann aus Pointern auf Heightmaps bestehen. Das wäre ein Kompromiss zwischen Dateigröße und Einsetzbarkeit bei schwierigen Objekten. Und mann muss nicht schauen, ob ein Mesh noch "gültig" ist