Il existe deux catégories de personnes, ceux qui décident d’apprendre un langage pour ajouter une ligne à leur CV et ceux qui décident de faire un survol de terrain en JavaScript et WebGL. Son auteur Zephyros Anemos en plus de proposer une démonstration assez impressionnante en fluidité, explique un certain nombre de faits et de problèmes qu’il a rencontré au cours du développement. Voici un résumé succinct :
- bien que ce soit un survol de terrain, la majorité du temps de rendu est alloué à la GUI ;
- le calcul de la visibilité du soleil peut être très gourmand si cela n’est pas fait correctement ;
- avoir un taux de rafraîchissement acceptable requiert une utilisation intensive des caches. Tout doit être fait une seule fois et uniquement lorsque nécessaire ;
- l’utilisation du Geomipmapping (technique de « level of detail (LOD) » développée par W.H. de Boer en 2000 qui permet de réduire la pression sur le CPU) ne fait pas grande différence sur une machine munie d’une carte graphique puissante. Cela a nécessité une grande phase d’optimisation pour arriver à ce résultat. Mais, le plus étonnant même avec un PC portable embarquant une carte accélératrice d’entrée de gamme, le LOD n’accélère que peu le rendu ;
- charger/décharger les tuiles en arrière plan a nécessité une attention particulière pour permettre le survol à grande vitesse ;
- comme le rendu de la GUI se fait en même temps que le reste, le survol du terrain peut en être dégradé significativement quand le taux de rafraîchissement est faible (strictement inférieur à 30 FPS).
Une explication détaillée des points présentés peut être trouvée sur le site de l’auteur et voici un petit aperçu :
Vous pouvez tester le travail réalisé en suivant ce lien : http://www.zephyrosanemos.com/windstorm/20130301/live-demo.html
Source : Project Windstorm
C’est étonnant de lire « Mais, le plus étonnant même avec un PC portable embarquant une carte accélératrice d’entrée de gamme, le LOD n’accélère que peu le rendu ».
Le LOD est là pour permettre une meilleure qualité de rendu des textures et ne peut pas accélérer l’affichage ; s’il y a bien une chose c’est que le LOD rend plus lent un même rendu qui se fait sans LOD. La lenteur correspondante est cependant imperceptible car c’est la consommation de mémoire qui augmente dépendamment du nombre de niveau de sous-texture que l’on souhaite avoir.
Mécompréhension de ma part. Sur le site de l’auteur, le LOD porte aussi sur le nombre des poglygones et non seulement sur les textures. Dans ce cas, oui, tout à fait d’accord pour l’accélération.
A savoir pourquoi dans son cas, il n’y a pas d’accélération notable… peut-être que le nombre de polygones total ne change sensiblement pas quelque soit la distance à laquelle sa caméra se trouve (?).
Dit comme ça, c’est étonnant.