[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