Votre question n'est pas claire quant aux restrictions de contexte dans lesquelles vous travaillez. La grande majorité des textures dans le rendu 3D sont 2D. Donc, si vous montrez simplement une sphère 3D avec une texture de surface 2D mappée autour d'elle, ce n'est pas vraiment un problème. Si vous ne pouvez pas utiliser le rendu 3D, vous devez dire exactement ce que vous pouvez utiliser.
Le problème de base est que vous devez rendre une texture plate sur la surface d'une sphère, que vous obtenez gratuitement avec le rendu 3D. À mesure que la planète tourne, les parties visibles de la surface de la planète s'animent de manière non linéaire (les parties équatoriales de la texture se déplacent plus rapidement que les pôles). Je pense donc que soit vous devez déformer l'image vous-même lorsque vous la mappez sur le disque, soit vous faites comme VirtualVoid l'a suggéré, et vous avez simplement plusieurs images que vous changez entre les temps.
Ce serait horrible à mettre en œuvre, mais si vous êtes en mesure de rendre la texture, pixel par pixel, alors vous pourriez faire les calculs de pixellisation pour chaque ligne de la sphère séparément. Supposons que la texture de votre carte de surface soit aplatie, de sorte qu'à l'équateur, il y ait 512 pixels d'image. Supposons également que votre disque visible mesure 256 px de large. Considérez maintenant chaque ligne du disque rendu comme une fenêtre coulissante sur la texture de la surface. Sur l'équateur, la fenêtre correspond à 50% de la largeur de la texture et vous copiez simplement chacun des 256 pixels sur le pixel équivalent du disque. La ligne suivante sur le disque sera légèrement inférieure à 256 px, mais en raison de la carte de surface déformée, il reste 256 pixels de données de carte de surface en entrée. Vous sous-échantillonnez donc les données de la carte de surface en entrée et rendez le pixel résultant. Pour des maths faciles, laissez ' s supposons que 1/3 du chemin entre l'équateur et le pôle a une largeur de 128 pixels dans le disque de sortie. Donc, chacun de ces 128 pixels sera la moyenne de 2 pixels voisins. Lorsque vous descendez au pôle, vous seriez en moyenne tous les 256 px en seulement quelques pixels de sortie.
Vous pouvez également le faire dans l'autre sens et faire en sorte que les lignes de la texture source soient de longueurs différentes. Ainsi, alors que la ligne contenant les données source contient 512 pixels, la ligne 1/3 de la descente n'a que 256 pixels et la ligne du bas n'a que quelques pixels. Mais chaque ligne est le double de la largeur du disque à la coordonnée y équivalente. Ce genre de texture serait absolument horrible à créer. Et souffrirait probablement d'horribles problèmes d'alias.
Dans ces deux cas, votre animation consiste simplement à incrémenter le pixel de départ x dans la texture d'entrée et à revenir au début de la ligne de texture d'entrée.
Plus j'écris à ce sujet maintenant, plus je suis convaincu que c'est une horrible idée, que vous ne mettriez en œuvre que si vous n'aviez vraiment aucun autre choix. Et il faudrait être dans une situation très inhabituelle pour ne pas avoir d'autre choix.
Je ne pense pas avoir entendu parler de solutions à ce problème (plutôt vague) en tant que technique nommée spécifique.