SkySphere - Das Pendent zum SkyBox

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von jvbsl.

    SkySphere - Das Pendent zum SkyBox

    Hallo liebes Forum,

    ich bin im Begriff eine SkySphere zu implementieren.

    Folgendes habe ich mir überlegt:

    In Blender zwei Halbkugeln erstellen und auf diese Tag -und Nacht-Texturen mappen.
    In C# dann die beiden Meshes zeichnen und über CreateRotationX eben um den Spieler rotieren,
    Effekt: Es erscheint, als wenn der Tag in die Nacht fließt und vice versa.

    Jedoch habe ich Bedenken wegen der Effizienz dieses Verfahrens.
    Wie repräsentiert exemplarisch Minecraft den Himmel?

    Lieben Dank.
    Und Gott alleine weiß alles am allerbesten und besser.
    Und warum nicht einfach die SkyBox rotieren lassen? Warum willst du eine Sphere nehmen? Die meisten Cubemap Texturen sind doch extra in Richtung der Ecken so gestreckt, dass man eben nicht erkennt das es ein Würfel ist. Den kannst du auch einfach rotieren lassen.
    Hi
    wenn du's nicht über eine Skybox lösen willst, generiere dir ggf. einfach eine UV-Sphere oder eine Icosphere (was mMn schwerer ist) und mappe die Punkte einer Textur entsprechend auf die UV-Koordinaten der Vertices. Wenn du zusätzlich noch Normalen generierst, kann der Shader da eine wunderbare Kugel draus machen.

    Viele Grüße
    ~blaze~
    Ich mach gerne einfach ne Sphere(IcoSphere) und dann mappe ich keine Texturen, sondern regel alles über Shader, dann ist man dynamisch und kann alles mögliche andere Verhalten einbauen(z.B. auch feste Texturen :D)
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    So habe ich es im Grunde auch gemeint.
    Nur rätsel ich, wie ich eine Atmosphäre, spezifischer: Sonnenauf -und untergang implementieren kann.
    Ich mutmaßte, dass Minecraft einfach eine Texture auf eine Kugel mappt, und die Kugel dann rotieren lässt, sodass ein Tag Nacht Zyklus visualisiert werden kann.
    Und Gott alleine weiß alles am allerbesten und besser.
    Dann hättest du die Hälfte aller unterschiedlichen "Zeitzonen" gleichzeitig, d.h. auf der einen Hälfte ist es Tag, auf der anderen Nacht und zwar gleichzeitig.
    Wie gesagt, nimm dir ein Texture-Array und interpoliere zwischen ihnen. Der Vorschlag von jvbsl ist sicher auch praktisch; du brauchst sowieso einen eigenen Shader und in diesem kannst du das dann ja realisieren. Du kannst dir natürlich auch mehr Aufwand machen und bspw. die Normalen nur dann berechnen, wenn sie auch verwendet werden - oder im Vertexshader. Das ist auch nicht sonderlich teuer.

    Viele Grüße
    ~blaze~
    Nunja ich mach da immer viel über die Normalen, damit kann man ziemlich einfach und generisch eine Runde Sonne programmieren, für was eckiges hingegen würd ich eher Billboards nehmen und auf dem Sphere nur Farbverläufe etc. machen, denn eckiges dürfte mit Kugelkoordinaten und Interpolation nicht so einfach gehen(denke ich - noch nie probiert), außer du haust natürlich nur ne Textur drauf, welche die Form enthält und färbst diese ein.
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---