Für ein Hobbyprojekt von mir habe ich eine endliche Voxelwelt geschaffen (ähnlich wie Minecraft), aber wie gesagt, meine ist endlich. Wenn Sie den Rand erreichen, werden Sie auf die andere Seite geschickt. Das alles funktioniert gut zusammen mit dem Rendern der anderen Seite der Karte, aber ich möchte dieses Raster als Kugel rendern können.
Von oben gesehen ist die Welt ein Quadrat. Ich möchte im Grunde in der Lage sein, einen Teil dieses Quadrats als Kugel darzustellen, als ob Sie einen Planeten betrachten würden. Im Moment experimentiere ich damit, einen kreisförmigen Abschnitt der Karte zu nehmen und diesen zu rendern, aber er sieht zu flach aus (keine Krümmung an den Rändern).
Meine Frage ist dann, wie man die Kanten eines 2D-Kreises am besten krümmt, damit er wie eine Halbkugel aussieht. Ich bin jedoch nicht übermäßig an diese Implementierung gebunden. Wenn also jemand eine andere Idee hat, den Platz als Planeten darzustellen, bin ich ganz Ohr.
Antworten:
Im Moment haben Sie im Wesentlichen eine 2D-Ebene oder zumindest ein dickes Würfelblatt. Das ist deine Karte. Sie möchten diese Karte nehmen und um eine Kugel wickeln. Eine einfache Möglichkeit, dies zu tun, besteht darin , Ihre Umhüllungskoordinaten in sphärische Koordinaten umzuwandeln . Wickeln Sie so, wie Sie es mit Ihrer aktuellen Welt tun würden.
Um all die fiesen Verzerrungseffekte zu vermeiden, die Sie durch diese Konvertierung an den Polen erhalten, würde ich auch die Umhüllung so verschieben, dass sich Ihr Spieler immer am Äquator der Kugel befindet.
Dies kann ganz im Shader erfolgen, wenn Sie möchten. Dies hält die Dinge sehr einfach, da es sich um einen Effekt handelt, den Sie einfach ein- oder ausschalten können und Sie sich keine Gedanken darüber machen müssen, Ihre Spiellogik zu ändern.
Ich habe selbst ein wenig damit experimentiert und das Obige ist die Methode, die ich verwendet habe. Die Ergebnisse waren vielversprechend:
quelle
Verwenden Sie den gleichen Ansatz wie in Populous III - betrügen Sie das Auge beim Herauszoomen. Auf diese Weise können Sie Ihr planares Weltmodell beibehalten, mit dem Sie leicht arbeiten können.
quelle