Ich möchte eine flache Welt erstellen, aber ich möchte sie in Teile aufteilen, die in Segmente geladen werden (zur besseren Optimierung). Wenn Sie sich am Ende der Karte befinden, werden die Segmente wieder von vorne geladen. Und ich möchte eine Illusion von Rundheit machen (wenn möglich nur optischer Effekt). Wenn Sie beispielsweise Schiffe am Horizont beobachten, sehen Sie zuerst deren Masten.
Ich frage nur nach theoretischen Ideen, daher müssen Sie keine Skripte senden.
optimization
world-design
T. Růžička
quelle
quelle
Antworten:
Sie können dies nur in einem Vertex-Shader tun. Sie möchten diesen Shader auf alles anwenden, was Sie rendern.
Ein Trick, den Sie tun können, ist es, es so zu beschweren, dass die Objekte in der Nähe auf 100 Meter flach sind. Ich würde dies empfehlen, da in einem FPS-Spiel die Verzerrung von Objekten erfordert, dass Sie Dinge ändern. (Spieler werden auf falsche Dinge zielen). Wenn Sie die nahe gelegenen Regionen flach halten, beginnen Sie die Kurve in einem Abstand, der ohne Interaktionsprobleme gleich aussieht.
Hier ist ein Bild zu verstehen. (Ich habe den Code im Moment nicht auf diesem Computer, aber es sind nur ein paar Zeilen, wenn ich mich richtig erinnere).
Da hast du nach Code gefragt. Ich kann diesen Code nicht zu 100% überprüfen, aber ich habe gesehen, dass Bilder davon funktionieren. (Ich habe einen Pseudocode für einen Freund geschrieben, der ihn in HLSL konvertiert hat, und die Bilder haben gezeigt, dass er funktioniert).
quelle