Ihre Frage zu den Einschränkungen des Kontexts, in dem Sie arbeiten, ist unklar. Die überwiegende Mehrheit der Texturen beim 3D-Rendering ist 2D. Wenn Sie also nur eine 3D-Kugel mit einer darauf abgebildeten 2D-Oberflächentextur anzeigen, ist dies kein wirkliches Problem. Wenn Sie kein 3D-Rendering verwenden können, müssen Sie genau angeben, was Sie verwenden können.
Das Grundproblem ist, dass Sie eine flache Textur über die Oberfläche einer Kugel rendern müssen, die Sie beim 3D-Rendering kostenlos erhalten. Während sich der Planet dreht, werden die sichtbaren Teile der Planetenoberfläche nicht linear animiert (die äquatorialen Teile der Textur bewegen sich schneller als die Pole). Ich denke also, dass Sie entweder das Bild selbst verzerren müssen, während Sie es über die Disc abbilden, oder Sie tun, wie von VirtualVoid vorgeschlagen, und einfach mehrere Bilder haben, zwischen denen Sie im Laufe der Zeit wechseln.
Es wäre schrecklich zu implementieren, aber wenn Sie in der Lage sind, die Textur Pixel für Pixel zu rendern, können Sie die Rasterisierungsberechnungen für jede Linie der Kugel im Grunde separat durchführen. Nehmen wir an, dass Ihre Oberflächenkartentextur abgeflacht ist, sodass am Äquator 512 Pixel Bild vorhanden sind. Nehmen wir außerdem an, dass Ihre sichtbare Disc 256 Pixel breit ist. Stellen Sie sich nun jede Zeile der gerenderten Disc als Schiebefenster auf der Oberflächentextur vor. Am Äquator beträgt das Fenster 50% der Texturbreite, und Sie kopieren einfach jedes der 256 Pixel auf das entsprechende Pixel auf der Disc. Die nächste Zeile auf der Disc ist etwas kleiner als 256 Pixel, aber aufgrund der verzerrten Oberflächenkarte sind immer noch 256 Pixel der eingegebenen Oberflächenkartendaten vorhanden. Anschließend werden die Daten der Eingabeoberflächenkarte unterabgetastet und das resultierende Pixel gerendert. Für einfache Mathematik lassen Sie ' s nehmen an, dass 1/3 des Weges zwischen Äquator und Pol in der Ausgangsscheibe 128px breit ist. Jedes dieser 128 Pixel ist also der Durchschnitt von 2 benachbarten Pixeln. Wenn Sie zum Pol gelangen, werden Sie alle 256 Pixel in nur wenigen Ausgangspixeln mitteln.
Sie können es auch andersherum tun und die Linien in der Quelltextur unterschiedlich lang sein lassen. Während die Zeile mit den Quelldaten 512 Pixel enthält, hat die Zeile 1/3 des Weges nach unten nur 256 Pixel und die Zeile unten nur wenige Pixel. Jede Linie ist jedoch doppelt so breit wie die Scheibe an der entsprechenden y-Koordinate. Eine solche Textur wäre allerdings absolut schrecklich zu erstellen. Und würde wahrscheinlich unter schrecklichen Aliasing-Problemen leiden.
In beiden Fällen erhöht Ihre Animation einfach das Startpixel x in der Eingabetextur und umschließt den Anfang der Eingabetexturzeile.
Je mehr ich jetzt darüber schreibe, desto mehr bin ich davon überzeugt, dass es eine schreckliche Idee ist, die Sie nur umsetzen würden, wenn Sie wirklich absolut keine anderen Möglichkeiten hätten. Und Sie müssten sich in einer sehr ungewöhnlichen Situation befinden, um keine andere Wahl zu haben.
Ich glaube nicht, dass ich von Lösungen für dieses (eher vage) Problem als eine bestimmte benannte Technik gehört habe.