|
Dans la série "Les évolutions futures du viewer de Second Life", l'amélioration du transport et de l'affichage des textures est un des épisodes que nous attendons pour les prochaines versions.
L'enjeu est de taille car cela concerne les performances du viewer, même si le cache des textures ne concerne pas uniquement le viewer. Pour que vous puissiez voir sur votre écran un décor fini et parfaitement texturé, il est nécessaire d'amener chaque texture de la base d'asset où elle est stockée jusqu'à la carte graphique de votre ordinateur en transitant par le simulateur de la région. Les textures transférées ne sont pas uniquement celles affichée à l'écran ; contrairement à la vision humaine qui se réduit à un cône aplati dirigé par la position des yeux, le viewer voit une sphère entière dont le rayon est la limite d'affichage des Préférences. Cette vision omnidirectionnelle peut de plus déborder sur les sims voisines. Dans le but louable d'accélérer le processus d'affichage, il est convenu de conserver les textures sur le disque dur des ordinateurs concernés, c'est ainsi qu'il y a un cache sur votre disque dur, mais aussi sur celui de l'ordinateur chargé de simuler la région. Le cache de votre ordinateur a une organisation en arbre, le tronc étant réprésenté par un fichier qui contient la liste de toutes les textures avec des pointeurs sur les fichiers de texture proprement dits qui sont répartis en 16 répertoires. Il existe un second cache qui contient toutes les textures propres au viewer, la texture du contreplaqué bien sûr mais aussi celles des boutons et des icônes. Un des points sensibles est le fichier de pointeurs, sa mise à jour est une opération trop longue pour qu'elle puisse être faite à l'arrivée de chaque texture ; en fait, quand une texture arrive sur votre ordinateur, elle est enregistrée à la fin de ce fichier et la texture est rangée à sa place dans les 16 répertoires écrasant une texture qui aurait la même clé. Une fois par heure, le fichier des pointeurs est réorganisé, les doublons sont éliminés. Gros problème lorsque le cache a atteint sa taille maximum ; il faut immédiatement réorganiser le fichier des pointeurs, puis éliminer les textures les plus anciennes jusqu'à ce que 10% du cache soit libéré, tout en continuant à assurer les autres fonctions du viewer. Il est inévitable que les configurations les moins performantes subissent un effet de lag à ce moment. La parade serait d'avoir un cache plus volumineux, mais il serait de plus en plus difficile à gérer, causant de long moment de textures manquantes, avec des paysages, des objets et des avatars qui resteraient gris. Cette manière de gérer le cache est, dans le principe, restée la même depuis que Linden World est devenu Second Life, les seules modifications portant sur la correction d'anomalies. Les développeurs de Linden en sont conscients et, dans le cadre de la collaboration avec les développeurs de viewers alternatifs prônée par Philip Rosendale, une étude massive pour aboutir à une nouvelle gestion du cache est démarrée depuis la mi-avril 2009 ; de nombreuses possibilités sont envisagées : - Cache multi-niveau pour textures décompressées et compressées (mémoire, disque décompressé, disque compressé, bibliothèques sur réseau...) - Autres formats d'images - Autres tailles d'images - Autres structures de stockage -... Souhaitons que ces travaux aboutissent vite et nous donnent une plus grande fluidité du viewer. (To be continued) Garmin Kawaguichi, Cache-cache Boy
|