Tessellation et rendu des surfaces planétaires

Avec la version 3.0.118, WinStars utilise la tessellation dans le but d’améliorer le rendu des surfaces planétaires. Cette technique, introduite avec la norme OpenGL 4.0, ajoute un grand nombre de triangles à un objet afin de complexifier son aspect en 3D.
Jusque-là, WinStars simulait le relief d’une planète en jouant sur les ombres et les perspectives en trompe-l’œil. Les textures modifiées par occlusion mapping étaient ensuite appliquées sur des formes géométriques simples (typiquement une dizaine de triangles).

Technique de l’occlusion mapping qui joue sur les ombres et les lumières pour simuler des aspérités à la surface d’un objet

Ici, le rendu filaire a été activé. En réalité, la surface reste très simple géométriquement.

Avec la tessellation, le nombre de polynômes utilisés pour représenter les détails d’un objet explose.  Les creux et les bosses sont maintenant représentés en trois dimensions et ne sont plus simulés.

Le maillage bien plus complexe de la surface est visible en mode filaire. Les triangles se comptent ici par milliers.

L’intérêt de la tessellation est que l’ajout de ces nouveaux triangles est réalisé en interne par le processeur graphique durant la phase de rendu.
Il n’y a donc pas de problème de réduction de la bande passante entre le CPU et le GPU durant la phase de complexification géométrique. Cette technique étant très optimisée, l’incidence sur la fluidité du logiciel est limitée.

Cette vidéo de Gamoniac explique très bien l’intérêt de cette technique dans l’industrie du jeu vidéo :

La tessellation est activée pour Mars et la Lune et ne fonctionne pour le moment qu’avec les versions desktop (Linux, MacOS et Windows). Le rendu de la surface de Mars n’est pas aussi bon que pour la Lune, la qualité des textures étant très inférieure.  Je cherche de meilleures textures pour offrir un rendu comparable.