23 septembre 2026

Dessin et animation complets

Frontières, rivières, rotation du globe et fluidité retrouvée

Contexte

Le billet du 28 juillet montrait le tout premier dessin des continents avec la nouvelle base technique : C++ 23, WinUI 3 et Direct2D. Je concluais alors qu'il restait « encore beaucoup de travail avant de retrouver tout ce que la version 1 était capable de dessiner ».

J'ai donc repris le chantier en m'appuyant sur le code de la version 1 (MFC et GDI+). L'objectif était de retrouver une à une ses fonctionnalités, parfois en reprenant directement ses algorithmes. L'assistant de programmation Claude Code était à la manœuvre afin d'accélérer le développement (quelques heures de travail). Voici le détail des changements.

Logiciel Heclium - Vue d'ensemble centrée sur l'Afrique - Cliquez pour agrandir
Vue d'ensemble centrée sur l'Afrique : côtes, frontières et cours d'eau, tracés avec une épaisseur constante quel que soit le zoom.

Ce qui a été retrouvé de la version 1

Frontières et cours d'eau

En plus des côtes GSHHS, Heclium affiche de nouveau les frontières (3 niveaux) et les cours d'eau (11 niveaux) de la base WDBII. Les traits gardent une épaisseur constante à l'écran, quel que soit le zoom. Leurs jonctions sont arrondies, pour que les tracés très anguleux de certaines frontières ne se transforment pas en pointes.

La résolution choisie selon le zoom

C'était déjà le principe de la version 1 : inutile de dessiner les côtes en résolution complète quand la Terre ne fait que quelques centaines de pixels à l'écran. Les cinq résolutions de GSHHS sont désormais chargées : grossière, basse, intermédiaire, haute et complète. La résolution est choisie selon le rayon du globe à l'écran, avec les seuils de l'époque (500, 2 000, 10 000 et 45 000 pixels). Si une résolution manque pour un niveau donné, Heclium se replie sur la plus fine disponible parmi les plus grossières.

Le zoom maximal est passé au passage de 50 à 500.

Ne parcourir que les zones visibles

Les données sont découpées en zones de longitude et de latitude : en résolution complète, 16 200 zones de 2° sur 2°. Comme dans la version 1, seules les zones susceptibles d'être visibles à l'écran sont maintenant parcourues. À fort zoom, cela représente quelques dizaines de zones au lieu de la grille entière.

Le bord du disque terrestre

Quand un continent passe derrière l'horizon, son contour doit s'arrêter exactement au bord du disque, puis le suivre jusqu'à l'endroit où il réapparaît. C'est ce que faisaient les fonctions de la version 1 qui calculaient le point de passage à l'horizon et rejoignaient deux points par un arc. Sans ce traitement, les immenses polygones comme l'Eurasie présentaient des encoches le long du bord. Le point de passage est maintenant calculé exactement, et l'arc n'est utilisé que pour les surfaces remplies. Une frontière ou une rivière disparaît simplement à l'horizon.

Faire tourner la Terre à la souris

La manipulation est la même qu'à l'époque :

Cela a demandé de généraliser tous les calculs, jusque-là écrits pour une vue fixe centrée sur 0° / 0°. Il a aussi fallu ajouter la projection orthographique inverse (de l'écran vers la longitude et la latitude), pour que le point attrapé reste bien sous le curseur.

Pour la première fois, l'animation est vraiment fluide, y compris sur un écran 4K. C'était déjà ce que j'espérais des progrès du matériel et du logiciel à l'époque de ma toute première version, il y a maintenant plus de 27 ans. Toujours en 2010 - donc il y a 16 ans - j'écrivais dans un précédent billet que Direct2D était une technologie prometteuse. Aujourd'hui ce n'est plus un rêve, c'est une réalité.

Logiciel Heclium - Globe tourné vers l'Océanie - Cliquez pour agrandir
Le globe tourné à la souris vers l'Océanie : l'Australie, la Nouvelle-Zélande et les limites tracées par la base WDBII autour des archipels du Pacifique.

L'Antarctique en blanc

Comme annoncé dans le billet du 15 avril 2008, l'Antarctique et toutes les îles situées sous le 60e parallèle sud sont de nouveau affichés en blanc très légèrement bleuté. C'est un critère de latitude : il s'applique aussi aux îles australes rangées dans le niveau « terre » ordinaire, comme les Orcades du Sud ou les Shetland du Sud.

Logiciel Heclium - L'Antarctique en blanc - Cliquez pour agrandir
L'Antarctique en blanc légèrement bleuté, rempli jusqu'au pôle Sud, où convergent les méridiens de la grille.

Lacs, îles dans les lacs, étangs

Comme dans la version 1, ce sont simplement des couches superposées : la terre, puis les lacs par-dessus, puis les îles dans les lacs, puis les étangs dans ces îles.

Interface

Nouveautés

Grille de méridiens et de parallèles

La grille est calculée à la volée. Son pas s'adapte au zoom (de 60° à 0,1°) pour garder environ 40 pixels entre deux lignes. Seule la partie visible de chaque ligne est calculée. Les pôles ont demandé un traitement particulier : tous les méridiens y convergent, ce qui produisait des méridiens manquants ou un petit disque vide au lieu d'un point de convergence net.

Logiciel Heclium - Grille près du pôle Nord - Cliquez pour agrandir
Le Groenland et l'Arctique canadien, avec la grille de méridiens et de parallèles près du pôle Nord.

Statistiques de rendu

La touche F3 affiche en surimpression le temps passé dans chaque couche (terre, lacs, rivières, frontières, grille…). Elle indique aussi le nombre de zones, de polygones et de points traités. Un résumé est envoyé chaque seconde dans la fenêtre de sortie du débogueur. Cet outil a permis de trouver les derniers problèmes de performance.

Logiciel Heclium - Statistiques de rendu - Cliquez pour agrandir
Statistiques de rendu (touche F3) au zoom ×116, au-dessus du détroit d'Ormuz en résolution complète : toute l'image est calculée en un peu plus de 5 ms.

Corrections dans la préparation des données

Plusieurs défauts ne venaient pas du dessin, mais du découpage des données en zones. Ce découpage est fait une fois pour toutes à la conversion.

Les cinq résolutions ont été régénérées : seule la résolution complète existait jusqu'ici.

Performance

Même avec une machine puissante, il restait des cas où le dessin restait lent. Voici les principales causes, toutes corrigées :

Ce qui reste à faire

Conclusion

Heclium a retrouvé l'essentiel de ce que la version 1 savait dessiner : côtes, lacs, frontières, cours d'eau, Antarctique en blanc, choix automatique de la résolution et rotation du globe à la souris. Il y ajoute une grille et une fluidité que je n'avais jamais connue. La prochaine grande étape sera enfin celle qui justifie le nom du logiciel : les éclipses.

← Tous les articles