[OpenGL] Planetentexturen



  • Hi,

    Ich arbeite mich gerade in das Thema Texturen in OpenGL ein und hätt da mal ne Frage:

    Wer das Computerspiel "Haegemonia" kennt, kennt sicherlich diese hochauflösend texturierten Planeten. Die Nachtseite der Planeten ist dabei natürlich dunkel, aber mit Lichtern von Städten - sieht also schonmal sehr lebendig aus.

    Der Clou ist jetzt, das der Planet sich dreht und am Terminator (Tag/Nacht - Grenze) gehen dann überall die Lichter an - sieht wirklich gut aus.

    Hat jemand eine Idee, wie das realisiert wurde bzw. wie man das in OpenGL machen könnte? Vielleicht mit Überblendung von zwei Texturen ?

    Viele Grüsse

    yusha



  • Naja wie wärs einfach den planeten drehen?



  • Zuerst berechnest Du das Licht, das auf die Oberläche trifft.
    licht = | skalarprodukt( normalenvektor_planet, lichtvektor ) |
    Dann die Tag und Nacht Textur blenden:

    farbe = (tag_textur * licht) + (nacht_textur * (1-licht))

    Wie man das mit OGL ohne Shader macht weiß ich nicht, geht aber bestimmt.



  • Also das mit den Texturen blenden sollte recht gut gehen, die Lichter könnte man aber auch einfach nur auf der dunkelen Seite draufblenden.

    Bye, TGGC


Anmelden zum Antworten