Une planète n'est pas une image
Je développe Dynasty Nova, un jeu de gestion spatiale par navigateur. Une planète s'y affiche à trois endroits. En horizon dans l'en-tête des écrans, en sphère dans la galaxie, et en globe 3D qui tourne sous les yeux du joueur. Chaque variante de planète, c'est donc quatre livrables cohérents entre eux, dont trois textures que le moteur 3D pose sur une sphère.
C'est la seule chaîne de notre production qui fabrique autre chose qu'une illustration. Et c'est la seule qui mesure au lieu de juger à l'œil : une texture qui semble juste à plat peut rendre faux une fois éclairée, tone-mappée et enroulée sur une sphère.

Les livrables d'une variante
- Horizon → 1 024 × 1 024, la planète vue en orbite basse, limbe montant vers la droite.
- Sphère → 1 024 × 1 024, détourée, pour les cartes et la galaxie.
- Albédo → 2 048 × 1 024, au ratio 2:1 exact, la couleur de surface sans éclairage.
- Normale → 1 024 × 512, le relief.
- Spéculaire → 512 × 256, ce qui brille (eau, glace).
L'ordre de fabrication n'est pas négociable : chaque livrable se mesure contre le précédent.
L'erreur qui a imposé l'ordre
La première tentative sur un biome sec avait réutilisé l'ancienne texture du jeu comme référence pour générer les horizons. Les six horizons ont inventé des identités sans rapport avec leurs sphères : une plaine pâle et craquelée là où la sphère montrait une grande faille. Le joueur aurait vu deux planètes différentes selon l'écran.
L'albédo « vérité terrain » d'abord
Depuis, la chaîne commence par reconstruire un albédo à partir de la sphère existante, avec Nano Banana Pro, un modèle de composition et non de transfert de style. Le prompt est un cahier des charges en sections :
- Format → projection plate latitude-longitude, ratio 2:1, continuité horizontale.
- Verrou d'orientation → le centre de l'image correspond à la longitude 0°, sans rotation ni recentrage.
- Reconstruction du dos → la face cachée est inventée, mais cohérente.
- Surface → albédo pur, aucune information d'éclairage.
- Structure → asymétrie, aucun motif radial, aucune réinterprétation artistique.
Sur les géantes gazeuses, les clauses de géographie sont remplacées par des clauses de bandes : chaque bande forme un anneau complet qui se referme sur la couture, et toute tache isolée n'apparaît qu'une fois.
L'horizon, avec trois références dosées
L'horizon final est généré par Krea 2 Medium avec trois références : une référence de style par climat (0,50), l'ancien horizon de cette variante pour le cadrage (0,40) et l'albédo tout juste reconstruit pour la vérité du terrain (0,25). Une seule variable change d'une planète à l'autre : la référence de climat.

Une phrase qui a tout changé
Les premiers horizons sortaient à 0,21 de saturation contre 0,64 pour les bannières du jeu, et à 45 % de dominante froide contre 95 %. Ils ressemblaient à des photos orbitales, pas à une illustration peinte. La clause qui a le plus changé le rendu décrit le ciel : un vide sombre et profond, sarcelle et indigo, dont la nuance vient de bancs de poussière et de voiles nébuleux, jamais de la luminosité.
Corriger sans casser
Une fois l'horizon validé, la sphère est recalée dessus, puis l'albédo de production est généré à partir de cette sphère recalée. Deux pièges sont irréversibles.
Corriger en Lab, jamais en RVB
Corriger la couleur en RVB décale la teinte des extrêmes : les calottes polaires viraient au bleu-violet. Le recalage se fait en espace Lab, sur la chroma seulement, avec un facteur plafonné à 1,35 : une variante sombre a peu de chroma, donc un rapport énorme, et son bassin ocre virait à l'orange fluo.
Ne jamais aligner la luminance
La luminance est ce qui distingue les six variantes d'un même biome. Alignée, la variante basaltique serait passée d'une luminance de 42 à 105, et toutes les planètes du biome se seraient ressemblé.
Mesurer dans le vrai moteur
C'est le cœur de la méthode. Un script rejoue les composants 3D du jeu, avec la même version de three.js, dans un Chromium headless, et rend chaque texture sur sa sphère. Un second script chiffre l'écart entre ce rendu et la sphère d'origine. La boucle se referme en résolvant un gain par canal de couleur.
Pourquoi un gain par canal
Le tone mapping ACES du moteur ne fait pas que désaturer : il décale la teinte. Avec un simple facteur de saturation, une mer de sable beige ressortait orange. Le gain se résout donc par canal et par variante, borné entre 0,70 et 1,30 : non borné, la boucle avait convergé sur un gain bleu de 2,16, avec postérisation et frange cyan à la clé.
Le quart de tour invisible
La géométrie de sphère de three.js place face caméra le point u = 0,25 de la texture, pas u = 0,5. Sans ce décalage d'un quart de tour, le moteur aurait affiché l'hémisphère reconstruit par l'IA plutôt que celui de la sphère d'origine. Aucun regard sur la texture à plat ne l'aurait détecté.
Ce que l'œil attrape encore
La mesure n'a pas tout vu. Deux défauts n'ont été repérés qu'à l'œil : une couture locale et une plage de noirs bouchés. Un écart moyen ne voit pas un défaut localisé. La mesure écarte ce qui est faux ; elle ne remplace pas la relecture.
Ce qui est calculé, pas généré
Les cartes de normale et de spéculaire ne sont pas demandées à l'IA : elles se calculent à partir de l'albédo (un filtre de Sobel sur la luminance pour le relief, un masque d'eau et de glace pour la brillance). Générer ce qui peut se calculer, c'est ajouter de l'aléa là où il n'en faut pas.
Et pas de 4K
Un upscale 4K a été testé et écarté. Il n'ajoutait que du bruit (+3,7 % d'énergie haute fréquence) et augmentait légèrement l'écart au moteur. Surtout, il cassait la continuité horizontale : l'upscaler ignore que les bords gauche et droit sont le même méridien.
Conclusion
Pour un asset 3D, l'IA générative est un excellent peintre et un très mauvais intégrateur. La méthode qui a tenu : générer ce qui demande de l'invention (le terrain, le dos caché), calculer ce qui se calcule (relief, brillance), et mesurer dans le moteur réel plutôt que sur l'image à plat. C'est le prolongement naturel de notre principe de création visuelle avec Krea, appliqué à la 3D, et un cousin des shaders et textures génératives dans Figma. Pour la place de ces visuels dans l'expérience de jeu, notre guide UX du jeu par navigateur donne le contexte.
Dans la même série
- Le style vient des images, pas du prompt
- Refondre la direction artistique d'un jeu par navigateur
- Une grille d'acceptation figée avant le premier tirage
- Garder le même visage avec Nano Banana Pro
- Un agent IA pour produire les visuels d'un jeu




