
Je suis en train d'écrire un script-fu (une sorte de add-on pour ceux qui ne connaissent pas) pour the Gimp, afin de faire en auto des surfaces virtuelles à partir d'un seul fichier. Ça existe pour Mac, mais visiblement ça n'existe pas pour PC. De plus, comme the Gimp est libre et sur beaucoup de supports...
Pourquoi? Parce que j'ai déjà parlé ailleurs de mon impossibilité d'afficher les surfaces détaillées en hi-res. Comme ça m'a énervé, et que je n'avais pas envie de les faire 'à la main'... Et puis je voulais m'exercer sur les script-fu, c'était une excellente occasion.
Néanmoins comme je débute, ce sera un peu long avant d'arriver à un script définitif.

J'up-daterai régulièrement sur ce post les différentes versions.
Teto.
Important: Les différents script sont placés sous Filtres/Celestia/virtual textures/
Scrpt-fu 1: Création.

Je poste ce premier script qui est un script simple car il ne fait que créer un fichier aux bonnes dimensions, par rapport au nombre de 'levels' demandés.
En regardant l'interface (script1.gif) on comprend assez facilement.
- Size security: petite bidouille permettant d'éviter de faire planter Gimp parce qu'on lui demande trop de mémoire. Perso j'arrive à faire un fichier niveau 4 mais au 5 il met un temps infini! (et j'ai du bon matos!)
- Le nombre de niveaux est limité à 8, au delà la taille est trop grande pour Gimp. Ce script est peu utile pour les niveaux supérieurs de toute façon, il est prévu que je fasse quelque chose pour les textures montrant précisément un lieu (genre Observatoire à Izaña...

- Nom de la planète = nom du fichier
- Nom des parents = nom du calque -> Ça sert plutôt pour le second script (ici on fait ce qu'on veut finalement) mais c'est plus une aide-mémoire.
Scrpt-fu 2: Exportation.

C'est sans doute le programme le plus utile pour le fan qui récupère une magnifique texture du genre grande et qui veut la transformer en texture virtuelle sans devoir se farcir les tuiles à la main. Je parle pour les PCistes, puisque les Linuxiens semblent mieux lotis.
Si vous regardez la capture jointe, l'interface est assez facile à comprendre, je pense, du moins ceux qui connaissent l'anglais!

- Check level auto: Détermine automatiquement le plus grand niveau que l'on peut faire avec l'image. Je suis parti du principe que les tuiles font 512x512. Une version future permettra peut-être de faire 512x1024 et autres 2048x2048, cela dépendra des demandes.
- Level (0 to 8 )(manual): Si le bouton du dessus n'est pas coché, c'est ce curseur qui est pris en compte. À noter qu'il s'arrête à 8. Au delà cela sort des possibilités matérielles de Gimp, qui est limité en taille de plan de travail.
- Export from level n to 0: Coché par défaut, la fonction permet de 'tuiler' du niveau choisi au niveau 0. Le script redimensionne le dessin pour chaque niveau (mais en partant toujours de l'image de départ, pour limiter les pertes) et le tuile.
- Resize image (auto) : Il peut arriver que vous vouliez utiliser une image, mais qui fait 1016x458 par exemple, ou même 5236x157. Si la case est cochée, le script détermine le niveau 'le mieux' et redimensionne l'image. La méthode de calcul est un peu simpliste, j'avoue, elle sera peut être à revoir. Si la case n'est pas cochée, cela signifie qu'on ne veut pas redimensionner une image qui ne soit pas aux normes -> Fin du script (un message s'affiche).
- Compute surface map: Si la case est décochée, les tuiles pour la texture de 'surface' ne seront pas générées.
Le texte sous la case à cocher: Pour ne pas alourdir l'interface, j'ai décidé que le nom du fichier devait correspondre au nom de la planète, et aux parents (genre Sol/saturne) pour le nom du calque. Cela sert pour la génération du fichier .ssc. Rien de grave si ça ne correspond pas, on peut modifier le fichier ensuite à la main.
- Surface map: Il faut ensuite la choisir. Si la case n'est pas cochée, elle devient inactive dans le programme.
- Compute normal map, Normal map, Compute night map, Night map: Idem pour les textures de nuit et 'normal map'.
- Export path (YourPlanet): Il faut enfin choisir le répertoire de destination où toutes les tuiles/fichiers seront générés. Attention! Malheureusement Script-fu ne semble plus pouvoir créer les répertoires. Il faut donc que toute l'arborescence soit déjà présente, car si on essait de sauvegarder un fichier dans un répertoire qui n'existe pas, le script plante. Hélàs.

À noter que le nom 'YourPlanet' est le nom de ce répertoire de tête dans l'archive.
À noter également que si vous ne choisissez aucun répertoire, le script s'arrête. Faible sécurité mais bon.
Très important: Une fois les textures créees, pensez à supprimer les répertoires vides, càd celles où aucune tuile n'a été générée. Sinon Celestia affiche des tuiles transparentes quand on s'approche de trop.
Voilà Je pense avoir été exhaustif. Si vous avez des problèmes, questions etc, n'hésitez pas.
J'ai fait plein de vérifs ça devrait aller. Mais aucun programme n'est exempt de bugs, donc... D'autant que je soupçonne l'interpréteur d'être bogué pour certaines choses, ce matin j'avais encore des problèmes avec une boucle (if...) simple. Je m'en suis sorti en utilisant une fonction voisine (cond ...) mais... enfin bref.
Si l'arborescence de répertoire ne convient pas pour les utilisateur d'Unix, Linux et autres, n'hésitez pas à m'en faire une, que j'intègrerai à l'archive.
Scrpt-fu 3: Configuration.
Pas encore fait mais je peux déjà en dire 2 mots. Ce script permettra de faire certains réglages comme la lumière spéculaire, le Haze, ces lignes qui sont dans le fichier .ssc.
Scrpt-fu 4: Importation.
- On indique une série de tuiles, le script reconstruit la texture mono-bloc. -> Est-ce que vous pensez que c'est utile?
- Au besoin elle en fait juste de plus gros morceaux si la texture finale s'avérerait trop grande pour les possibilités de Gimp. -> Utile?
- Gestion des textures type niveau 12. 'faut que je regarde avant comme ça marche, puisqu'on peut faire 0->1->2->11->12. Comment 'régler' les bords?