• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Vertexproblem

Thalion

Minecrafter
Registriert
22 Juli 2014
Beiträge
26
Diamanten
5
Minecraft
Spartaner_v1
Hallöchen,

da ich zur Zeit an einem eigenen Game programmiere und auch angefangen habe den Server zu schreiben, wollte ich einmal eine Frage stellen.
Zur Zeit werden die Vertex ( 3D-Punkte ) 1 zu 1 im File gespeichert. Das heißt bei 800x800 Vertexpunkten pro Terrain ca. 12MB Dateigröße. Der Spaß ist wie man denke ich bemerk viel zu groß. Nun habe ich viel probiert um eine sparsamere Methode zu entwickeln. Das Ergebnis ist eine Fließzahlenkomponente für X und Z. Nun ist die Frage, wie ich aus 3 Vertex einen beliebigen Punkt auf der Dreiecksfläche der drei Punkte berechnen kann? Für die Punkte ABC wären dann x,y und z bekannt.

http://puu.sh/h0hR7/113fee021f.jpg

Für den gesuchten Punkt wären x und z bekannt. y wäre die gesuchte Größe.

freue mich auf die Lösung oder vielleicht auch andere Vorschläge.

Mfg,
Thalion
 

Chrisliebär❤️

nur echt mit ❤️
Moderator
Registriert
19 Mai 2014
Beiträge
1.675
Diamanten
830
Terraindaten speichert man normalerweise nicht als Mesh. Es gibt mehrere Ansätze um das Terrain zu speichern, die einfachste ist eine Höhenmap auf der man ein Raster hat (800x800) und dann für jedes Feld in diesem Raster die Höhendaten speichert. Daraus kann man dann zur Laufzeit das Terrain erzeugen. Nachteil dieser Methode ist, dass man nur eine Terrainschicht hat und z.B. keine Höhlen machen kann, wobei es hierfür auch Lösungen gibt, hängt aber sehr stark von den Anforderungen ab. Damit löst sich auch das Problem, dass du den Punkt im Dreieck finden musst, weil du Quadrate hast. Sieht so aus: https://en.wikipedia.org/wiki/Heightmap

Wenn dir das nicht genau genug ist, weil du stellenweise detailiertere Terraindeformierungen umsetzten willst kannst du das Terrain mittels Space Partitioning unterteilen: https://en.wikipedia.org/wiki/Space_partitioning#Types_of_space_partitioning_data_structures

Ansonsten ist es noch üblich, dass man in einem gewissen Radius um den Spieler das Terrain glättet, damit es nicht so kantig wirkt. Das sind dann allerdings renderoptimierungen, die sehr schnell ausarten können. Sofern man das lernen will ist das ein interessantes Thema, aber wenn man eigentlich nur ein Spiel entwickeln will würde ich Unity empfehlen.
 
Zuletzt bearbeitet:

Thalion

Minecrafter
Registriert
22 Juli 2014
Beiträge
26
Diamanten
5
Minecraft
Spartaner_v1
Erstmal danke für die Antwort,

Ich benutze keine vordefinierten Umgebungen wie Unity bzw. hab es nicht vor. Die Glättung beim Rendern lässt sich relativ einfach lösen, von daher sollte das keine Probleme geben. Joa, werde mal sehen, wie weit ich mit dem Space partitioning komme.

Mfg,
Thalion
 

Chrisliebär❤️

nur echt mit ❤️
Moderator
Registriert
19 Mai 2014
Beiträge
1.675
Diamanten
830
Naja, ich denk als erstes solltest du eine Datenstruktur überlegen, mir scheint, dass du da etwas falsch machst. Das Space Partitioning wird eigentlich erst später interessant, anfangs solltest du vielleicht die Höhenmap mit einem Array fester größe implementieren, das hängt aber, wie schon gesagt, davon ab, was du eigentlich machen willst. Je nach Spiel kommt man mit ganz unterschiedlichen Implementierungen davon und hat absolut keine Probleme.
 

Thalion

Minecrafter
Registriert
22 Juli 2014
Beiträge
26
Diamanten
5
Minecraft
Spartaner_v1
Da ich mit mehreren Ebenen arbeite, bzw. arbeiten möchte, werden die Heightmaps ein bisschen schwierig zu machen sein. Ich werde auch weiterhin noch nach anderen Ideen suchen. Ich möchte nicht die "perfekte" Methode benutzen, sondern eine, welche ich nachvollziehen kann. Kann auch sein, dass ich hier etwas komplett missverstehe, falls es das sein sollte, bitte ich um Aufklärung.

Mfg,
Das Spiel ist als First Person, MMO RPG mit Sandboxelementen angesiedelt.
 
Oben